初识Flask——基于python的web框架

Posted qiezi_online

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识Flask——基于python的web框架相关的知识,希望对你有一定的参考价值。

参考教程链接:

https://dormousehole.readthedocs.io/en/latest/

(主要)https://www.w3cschool.cn/flask/

 目录:

1.写了一个简单的flask

2.url传参数

3.url_for重定向

4.和html中post和get的交互

5.渲染模板(前端字段交给后端,后端再返回新字段渲染给前端)

前提准备:anaconda(python3),pycharm

一、写一个hello.py

from flask import Flask
app = Flask(__name__)

@app.route(\'/\')
def hello_world():
   return \'Hello World’

if __name__ == \'__main__\':
   app.run()

解释:

1.@app.route(\'/\')说明了下面的hello_world()函数与url\'/\'绑定(http://127.0.0.1:5000/)
运行该hello.py,点击pycharm下的链接http://127.0.0.1:5000/,即会显示字符串Hello World
2.@app.route(‘/hello’)则绑定http://localhost:5000/hello

二、从url名字传递参数(
@app.route(\'/hello/<name>\')
from flask import Flask
app = Flask(__name__)

@app.route(\'/hello/<name>\')
def hello_name(name):
   return \'Hello %s!\' % name

if __name__ == \'__main__\':
   app.run(debug = True)

输入链接:http:// localhost:5000/hello/Jack


将会显示: Hello Jack!

参考:https://www.w3cschool.cn/flask/flask_variable_rules.html

 

三、url重定向(return redirect(url_for(\'hello_admin\')))

url_for(\'\')  #重定向到另外一个函数

from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route(\'/admin\')
def hello_admin():
   return \'Hello Admin\'


@app.route(\'/guest/<guest>\')

def hello_guest(guest):
   return \'Hello %s as Guest\' % guest


@app.route(\'/user/<name>\')
def hello_user(name):
   if name ==\'admin\':
      return redirect(url_for(\'hello_admin\'))
   else:
      return redirect(url_for(\'hello_guest\',guest = name))


if __name__ == \'__main__\':
   app.run(debug = True)

打开浏览器并输入URL - http://localhost:5000/user/admin

浏览器中的应用程序响应是:

Hello Admin

在浏览器中输入以下URL - http://localhost:5000/user/mvl

应用程序响应现在更改为:

Hel
lo mvl as Guest

 四、结合html和post和get

将以下脚本另存为login.html

<html>
   <body>
      
      <form action = "http://localhost:5000/login" method = "post">
         <p>Enter Name:</p>
         <p><input type = "text" name = "nm" /></p>
         <p><input type = "submit" value = "submit" /></p>
      </form>
      
   </body>
</html>

hello.py如下:

from flask import Flask, redirect, url_for, request
app = Flask(__name__)

@app.route(\'/success/<name>\')
def success(name):
   return \'welcome %s\' % name

@app.route(\'/login\',methods = [\'POST\', \'GET\'])
def login():
   if request.method == \'POST\':
      user = request.form[\'nm\']
      return redirect(url_for(\'success\',name = user))
   else:
      user = request.args.get(\'nm\')
      return redirect(url_for(\'success\',name = user))

if __name__ == \'__main__\':
   app.run(debug = True)

注意到,form表单method是post,input框的name是\'nm\'

<p><input type = "text" name = "nm" /></p>

在本地打开文件login.html

 

summit以后,网页自动跳转到\'/ success\' URL,显示:welcome mvl

 

 五、渲染

新建一个templates文件夹,用来放html文件

先写hello.html文件

<!doctype html>





  <h1>Hello {{ name }}!</h1>

 

hello.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route(\'/hello/<user>\')
def hello_name(user):
   return render_template(\'hello.html\', name = user)


if __name__ == \'__main__\':
   app.run(debug = True)

user是后端,本地的变量

name是定义在前端html文件中的变量

输入链接:http://127.0.0.1:5000/hello/jack, 会显示Hello jack!

六、static文件夹作用
用来放静态文件,如js文件和css文件
https://www.w3cschool.cn/flask/flask_static_files.html

以上是关于初识Flask——基于python的web框架的主要内容,如果未能解决你的问题,请参考以下文章

Python Flask框架初识,第一个Web界面

python常用框架之一 Flask 初识Flask

初识python轻量web框架flask

初识Flask

flask框架初识 1

python之初识Flask