Flask安装与使用
安装
pip install flask
示例
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World'
if __name__ == '__main__':
app.debug = True # 设置调试模式,生产模式的时候要关掉debug
app.run()
模版(Jinja2模版引擎)
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/hello')
@app.route('/hello/<name>')
def hello(name=None):
return render_template('hello.html', name=name)
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
在当前目录下,创建一个子目录“templates”,创建hello.html,内容如下:
<!doctype html>
<title>Hello Sample</title>
<h1>Hello World!</h1>
模版集成
一般我们的网站虽然页面多,但是很多部分是重用的,比如页首,页脚,导航栏之类的。对于每个页面,都要写这些代码,很麻烦。Flask的Jinja2模板支持模板继承功能,省去了这些重复代码。让我们基于上面的例子,在”templates”目录下,创建一个名为”layout.html”的模板:
<!doctype html>
<title>Hello Sample</title>
<link rel="stylesheet" type="text/css" href="">
<div class="page">
</div>
再修改之前的”hello.html”,把原来的代码定义在”block body”中,并在代码一开始”继承”上面的”layout.html”:
{/% extends "layout.html" %}
<h1>Hello World</h1>
HTML自动转义
前端调用后端方法返回页面
后端代码:
@app.route("/test",methods=['POST','GET'])
def test():
return "我是测试的"
前端代码:
-
使用 a 标签
<a href="">我是测试</a>这个是最简单的,点击一下,就自动跳转了。
-
使用 button 的onclick
<button onclick="window.location.href=''">点我</button>
URL参数读取
@app.route("/test",methods=['POST','GET'])
def test():
# 以POST方式传参数,通过form取值
if request.method == 'POST':
username = request.form['username']
else:
# 以GET方式传参数,通过args取值
username = request.args['username']
动态页面
@app.route('/test/<name>')
def test(name):
print(name)
部署上线
docker pull centos
docker pull python