Python框架Flask

窦戈 / 2023-06-25 / 原文

摘自:https://www.cainiaoxueyuan.com/bc/36825.html

Flask安装

 pip install Flask

项目配置

debug模式 Host 端口号


from flask import Flask, request

app = Flask(__name__)

# http://192.168.31.118:5001/
@app.route('/')
def hello_world():  # put application's code here
    return 'Hello World12223!'

# http://192.168.31.118:5001/my
@app.route('/my')
def my():
    return 'My name is Douge'

# http://192.168.31.118:5001/book/list 你获取的是1
# http://192.168.31.118:5001/book/list?page=2 你获取的是2
@app.route('/book/list')
def book_detail():
    page = request.args.get('page',default=1,type=int)
    return '你获取的是{}'.format(page)


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

模版渲染 传参

http://192.168.1.225:5001/template/detail_id/1991

from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/template/detail_id/<detail_id>')
def template(detail_id):  # put application's code here
    return render_template('demo.html', detail_id=detail_id)

模版访问对象

from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/template/detail_id/<detail_id>')
def template(detail_id):  # put application's code here
    obj = {
        'name':'douge'
    }
    return render_template('demo.html', detail_id=detail_id,obj=obj)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>hello Python{{ detail_id }}</div>
    <div>{{ obj }}</div>
    <div>{{ obj.name }}</div>
</body>
</html>

自定义过滤器

类似Thinkphp模版里面的使用函数

from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/template')
def template():  # put application's code here
    obj = {
        'name': 'douge'
    }
    return render_template('demo.html', obj=obj)

# 自定义过滤器 
def filter(value):
    return value.upper()
# 增加过滤器
app.add_template_filter(filter, 'filter')
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{#内置过滤器#}
    <div>{{ obj.name | length}}</div>
{#自定义过滤器#}
    <div>{{ obj.name | filter}}</div>
</body>
</html>