Flask

安装与使用

Posted by JackyCJ on March 20, 2020

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 "我是测试的"

前端代码:

  1. 使用 a 标签

     <a href="">我是测试</a>
    

    这个是最简单的,点击一下,就自动跳转了。

  2. 使用 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

参考