Flask

Posted 落落大方的发卡

tags:

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

Flask是一个轻量级的web框架。

示例:

from flask import Flask

app = Flask(__name__)

@app.route(\'/\')
def main():
    return \'<h1>hello world</h1>\'

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

启动Flask Server:

$ flask run --port 18888 --host 0.0.0.0

--port用来指定服务的端口。如果要使服务一直运行,在前面加上nohup

如果要设置成Debug模式,执行:export FLASK_DEBUG=1

Windows用 set 来设定环境变量。
参数路由

Flask支持在路由中添加参数,默认类型是string,也可以显式地声明为int

@app.route(\'/<id>\')
def func1(id):
    id = int(id) ** 2
    return str(id)

# 只会匹配整数的路由类型
@app.route(\'/<int:id>\')
def func2(id):
    return str(id ** 2)

# 这时候的 url_path 是一个相对路径
@app.route(\'/<path:url_path>/\')
def func3(url_path):
    return \'path:%s\' % url_path
请求方式

Flask默认是 GET方法,使用 methods参数指定更多的方法。

from flask import request

@app.route(\'/\', methods=[\'POST\', \'GET\'])
def main():
    if request.method == \'POST\':
        # 处理 POST 提交的表单
        register_dict = request.form
        username = register_dict[\'usrename\']
        password = register_dict.get(\'password\')

    if request.method == \'GET\':
        # 获取 GET 方法的参数
        key = request.args.get("key")

对应的请求方法是:

import requests

params = {\'username\': \'un\', \'password\': \'pwd\'}
r = requests.get(url, params=params)  # GET

data = {\'username\': \'un\', \'password\': \'pwd\'}
r = requests.post(url, data=data)  # POST
响应

Flask视图函数返回的参数将组成用户收到的响应(response)。

第一个参数是响应字符串;第二个参数是状态码,Flask默认设为200,表明请求已被成功处理;第三个参数是由 HTTP 响应首部组成的字典。

@app.route(\'/\')
def index(): 
    # 返回 400 状态码,表示请求无效
    return \'Bad Request\', 400

响应有个特殊的类型,称为重定向。

from flask import redirect

@app.route(\'/\')
def index():
    return redirect(\'http://www.example.com\')

还有一种特殊的响应由 abort函数生成,用于处理错误。

from flask import abort 
@app.route(\'/user/<id>\')
def get_user(id):
    if id == 0:
        abort(404)
    return \'hello\', 200

我们可以自定义错误处理方式。

@app.errorhandler(404) 
def page_not_found(error): # 自定义处理异常
    return \'This page does not exist\', 404

以上是关于Flask的主要内容,如果未能解决你的问题,请参考以下文章

12_关于flask中的宏

Flask之模板之宏继承包含

Flask模板宏的概念和基本使用

python flask(多对多表查询)

python后端 flask框架 计算时间差 并根据时间差条件返回flag值

python后端 flask框架 计算时间差 并根据时间差条件返回flag值