一、响应对象response
flask提供了Response最为视图最终返回的数据,但在代码编写过程中,我们通常很少直接使用Response对象,下面是几个常见的视图返回数据的方式
from flask import Flask, jsonify, render_template, Response, request,redirect
import os
app=Flask(__name__)
@app.route('/text')
def get_text():
#返回文本
return '返回文本'
@app.route('/dict')
def get_dict():
#返回字典
return {'state':0}
@app.route('/json')
def get_json():
#返回json
return jsonify({'state':0})
@app.route('/html')
def get_html():
#返回html
return render_template('index.html')
@app.route('/response')
def get_resonponse():
#返回一个Response对象
return Response('Not Found', status=404)
@app.route("/image")
def image():
#返回图片数据
f = open(os.getcwd()+"\\static\\tp01.jpg", 'rb')
resp = Response(f.read(), mimetype="image/jpeg")
return resp
if __name__ == '__main__':
app.run(debug=True)
- get_text 返回一个字符串
- get_dict 返回一个字典
- get_json 返回一个json格式的字符串
- get_html 返回一个模板
- get_resonponse 返回一个Response对象
-
利用Response返回图片
使用谷歌浏览器来查看这几个http响应的类型,1, 4, 5 的Content-Type 是 text/html,2,3的Content-Type 是application/json。这说明,flask会根据视图函数的返回值类型,来决定最终的Content-Type。
二、flask提交表单
用户使用表单向服务器提交信息,比如最常见的登录,本文讲解如何在html页面里提交表单,flask如何处理表单数据,此外还将讨论表单敏感信息如何存储。下面是一个简单的登录页面中的form表单
index.html示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1> 欢迎{{name}} </h1> </body> </html>
login.html示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/login" method="POST"> <p>name: <input type="text" name="name" /></p> <p>password: <input type="password" name="password" /></p> <input type="submit" value="提交" /> </form> </body> </html>
- action 设置提交的url
- method 设置请求的方法
- input标签的type设置为password时,在页面输入信息时不会显示明文
在服务端,接收表单信息的方式如下
@app.route('/login', methods=['GET', 'POST'])
def do_login():
if request.method == 'GET':
return render_template('login.html')
else:
name = request.form['name']
password = request.form['password']
if name == 'python':
return render_template('index.html', name=name)
else:
return redirect('/login')
通过request.form来获取表单信息,然后要对用户输入的用户名和密码做校验,这里只是为了做演示,因此判断逻辑很简单,真正的产品里,需要拿着用户名和密码去数据库的user表里去查询,如果能找到用户,则说明用户名和密码是正确的。
标签:return,name,get,Flask,表单,html,Response From: https://www.cnblogs.com/xfbk/p/16732661.html