![在这里插入图片描述](https://img-blog.csdnimg.cn/20210604143854146.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDYwMjE5Mg==,size_16,color_FFFFFF,t_70)
Response-响应对象(Server返回值)
'''
Response - Flask视图函数的返回值
Response的返回数据类型:
1、str - 字符型
2、dict - Json格式的字符串
3、Response对象
4、make_response() - 自定义 Response 响应对象
5、redirect() - URL重定向:302状态码
- return redirect('<url路由>')
- return redirect(url_for('<路由的endpoint名>'))
6、render_template('HTML模板名', **context) - 模板渲染 + HTML模板,使用此方法调用Flask templates目录中的HTML模板
'''
from flask import Flask, make_response, render_template, redirect, url_for
app = Flask(__name__)
def after_req(response):
response.headers['Access-Control-Allow-Origin'] = 'https://<Your Domain>'
response.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,DELETE'
response.headers['Access-Control-Allow-Headers'] = 'Content-Type,Authorization'
response.headers['Access-Control-Allow-Credentials'] = 'true'
return response
@app.route('/login', endpoint='login', methods=['GET', 'POST'])
def res():
content = '''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<form action="/" method="post">
<h1>用户登录</h1>
<p><input type="text" name="username" placeholder="请输入你的帐号"></p>
<p><input type="password" name="password" placeholder="请输入你的密码"></p>
<p><input type="submit" placeholder="登录"></p>
</form>
</body>
</html>
'''
response = make_response(content, 200)
response.headers['Name'] = 'NBA'
response.headers['Type'] = 'Game'
print(response.headers)
print(response.status_code)
return response
@app.route('/<int:num>')
def index(num):
if num == 1:
html = render_template('<HTML模板名>')
return html
else:
return redirect(url_for('<endpoint名>'), code=302)
if __name__ == '__main__':
app.after_request(after_req)
app.run(port=5001, debug=True)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210607143828884.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDYwMjE5Mg==,size_16,color_FFFFFF,t_70)
Request-请求对象 (Clinet)
'''
Request - Flask 请求对象,处理浏览器客户端请求
Request重点:
1、make_request() - 使用此方法可实现自定义请求对象数据信息
2、request.args - 获取URL的GE请求的参数数据
- request.args.get()
3、request.form - 获取URL的POST请求的表单数据
- request.form.get()
4、request.josn - 获取URL的POOST请求的BODY的JSON格式数据
- request.json.get()
'''
from flask import Flask, render_template, request
import config
app = Flask(__name__)
app.config.from_object(config)
def after_req(response):
response.headers['Access-Control-Allow-Origin'] = 'https://<Your-Domain>'
response.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,DELETE'
response.headers['Access-Control-Allow-Headers'] = 'Content-Type,Authorization'
response.headers['Access-Control-Allow-Credentials'] = 'true'
return response
@req.route('/test/add', endpoint='add')
def add():
html = render_template('add.html')
return html
@req.route('/test/index/device.json', methods=["POST", "GET"])
def index():
global content
if request.method == "POST":
content = {
"name": request.form.get("name"),
"type": request.form.get("type"),
"Model": request.form.get("model"),
"SN": request.form.get("SN"),
"Asset_No": request.form.get("Asset_No"),
"IP_Addr": request.form.get("IP_Addr"),
"address": request.form.get("address"),
}
elif request.method == 'GET':
content = {
"name": request.args.get("name"),
"type": request.args.get("type"),
"Model": request.args.get("model"),
"SN": request.args.get("SN"),
"Asset_No": request.args.get("Asset_No"),
"IP_Addr": request.args.get("IP_Addr"),
"address": request.args.get("address"),
}
dd = {
"content": {
"data": [
content
],
"currentPage": 1,
"totalCount": 1
},
"success": True,
"errorCode": "",
"errorMsg": ""
}
return dd
if __name__ == '__main__':
app.after_request(after_request)
app.run(host='0.0.0.0', port=5005)