一、 基本结构
二、另一种注册路由的方式
三、三种返回方式
四、设置请求方式
五、request中的数据
一、 flask_demo1 基本结构,六行实现 Hello World
from flask import Flask
app = Flask(__name__) # __name__ 全局标识
'''
1,先执行 app.route('/')-->返回一个decorator
2,@decorator,形成一个闭包,且decorator执行时还可以用'/'这个参数
'''
@app.route('/')
def index():
return 'Hello World!'
app.run(host='0.0.0.0', port=9527)
二、flask_demo2 另一种注册路由的方式
from flask import Flask
app = Flask(__name__)
def index():
return 'Hello World'
app.add_url_rule('/',view_func=index) # 写法1
# app.add_url_rule('/','index',index) # 写法2
app.run()

三、flask_demo3 三种返回方式
from flask import Flask, render_template, redirect
app = Flask(__name__)
@app.route('/') # 路由必须加上斜杠 /,否则报错
def index():
return '你好'
@app.route('/baidu')
def home():
return redirect('https://www.baidu.com')
# 重定向其实就是在响应头中加了一个Location,浏览器见了响应头中有这个键值对,就会再次给这个url发送一次请求
# Location: https://www.baidu.com
@app.route('/tem')
def tem():
return render_template('hehe.html') # 默认寻找同级目录的templates目录中的html文件
app.run()
四、flask_demo4 设置请求方式
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/login', methods=('GET','POST')) # 不写methods默认支持get,写上methods就按methods里的来,必须是可迭代(元组或列表)(源码中有规定)
def index():
if request.method == 'POST':
return '欢迎登陆'
return render_template('login.html')
app.run()

五、flask_demo5 request中的数据
from flask import Flask, request
app = Flask(__name__)
# 注意url写法,如果访问的url后面要加?参数,这个视图函数的url后就得加上斜杠/
@app.route('/test/', methods=('POST', 'GET'))
def test():
met = request.method
if met == 'POST':
# 【1.url中带参数时,放进这里】
print('args-->', request.args) # args--> ImmutableMultiDict([('token', '12345')])
# 【2.发送json数据时接收,放进这里】
print('json-->', request.json) # json--> {'name': 'zhangsan', 'age': 20}
# 【3.前端发的数据格式未知时,放进这里】
print('data-->', request.data)
# 【4.form表单提交时,放进这里】
print('form-->', request.form,type(request.form))
# form--> ImmutableMultiDict([('name', 'ddddd'), ('age', '11')])
# <class 'werkzeug.datastructures.ImmutableMultiDict'>
print(request.form.get('name'))
print(request.form.to_dict()) # {'name': 'ddddd', 'age': '11'}
# 【5.本次请求的完整url】
print('url-->', request.url) # url--> http://127.0.0.1:5000/test/?token=12345
# 【6.本次请求端口后的,参数前的路径】
print('path-->', request.path) # path--> /test/
return '请看大屏幕'
app.run()
# 使用postmen测试
网友评论