初识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
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框架的主要内容,如果未能解决你的问题,请参考以下文章