Flask学习

Flask学习

oyxy2019 340 2023-04-30

官方文档地址

教学视频链接

安装

pip install Flask

hello world

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return 'hello world'


if __name__ == '__main__':
    app.debug = True
    app.run(host='localhost', port=8888)

运行后,访问http://localhost:8888,即可看到hello world。
@app.route('/')中的就是url。

路由&变量规则

GET方法的url参数可变,访问:
http://localhost:8888/1
http://localhost:8888/2
即可进入不同的分支。

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return 'hello world'


@app.route('/<name>')
def usr(name):
    if name == '1':
        return '11111'
    else:
        return 'eeeee'

    
@app.route('/<int:post_id>')
def show_post(post_id):
    return f'Post {post_id}'


if __name__ == '__main__':
    app.debug = True
    app.run(host='localhost', port=8888)

类型 说明
string(默认) 接受任何不包含斜杠的文本
int 接受正整数
float 接受正浮点数
path 类似 string,但可以包含斜杠
uuid 接受 UUID 字符串

HTTP方法

POST方法
直接访问http://localhost:8888/login,为GET请求,返回form表单的登录界面。
点击”提交“,为POST请求,此时应该返回另一个界面。

from flask import request

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return do_the_login()
    else:
        return show_the_login_form()

Request对象

request对象包含前端发送过来的所有请求数据。
request.method:获取请求方法
request.form['username']:获取表单用户名
request..form['password']:获取表单密码

@app.route('/login', methods=['POST', 'GET'])
def login():
    error = None
    if request.method == 'POST':
        if valid_login(request.form['username'],
                       request.form['password']):
            return log_the_user_in(request.form['username'])
        else:
            error = 'Invalid 
    return render_template('login.html', error=error)

返回JSON数据给前端

from flask import Flask, jsonify

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False  # 中文编码


@app.route('/index')
def index():
    data = {
        'name': '张三'
    }
    return jsonify(data)


if __name__ == '__main__':
    app.debug = True
    app.run(host='localhost', port=8888)