flask之request
1 from flask import Flask, render_template, redirect, jsonify, send_file, request, session 2 3 app = Flask(__name__) 4 5 6 @app.route('/request/', methods=['GET', 'POST']) 7 def home(): 8 print(request.method) # 请求方式 9 print(request.url) # 请求完整路径(ip+port+路径+参数)http://192.168.16.14:8888/?id=1&name=yang 10 print(request.path) # 请求路径/ 11 12 print(request.args) # url请求查询参数 13 print(request.form) # Formdata表单数据(可以采用GET方式) 14 print(dict(request.form)) 15 print(request.form.to_dict())#MultiDict字典转化成常见的pyhton格式字典 16 print(request.files) # 文件上传(不能用GET方式上传文件,同时在form中添加属性enctype="multipart/form-data") 17 print(request.values) #获取url中get和post中的formdata数据 18 print(request.json) # 如果在请求中写入了 "application/json" 使用 request.json 则返回json解析数据, 否则返回 None(request.data中也有) 19 print(request.data) # 不属于form/formData或mimetype(http://www.w3school.com.cn/media/media_mimeref.asp)的描述,request就会将无法处理的参数转为Json存入到 data 中 20 21 # print(request.cookies) # 请求携带的cookie 22 # print(request.environ) # 请求原数据信息 23 # print(request.headers) # 请求头信息 24 # print(request.full_path) # 请求路径带参数 /?id=1&name=yang 25 # print(request.values) # 请求数据,包含GET的args和POST的formdata(不推荐使用) 26 # print(request.host) # 当前服务主机端口信息 192.168.16.14:8888 27 # print(request.host_url) # 请求主机信息 http://192.168.16.14:8888/ 28 # print(request) 29 # print(request.query_string) # bytes类型url请求查询参数 30 # print(request.base_url) # 请求路径(ip+port+路径,不带参数)http://192.168.16.14:8888/ 31 32 if request.method == 'GET': 33 return render_template('login.html') 34 35 elif request.method == 'POST': 36 print(request.files.get('myfile').filename) # POST方式上传的文件数据 37 filename = request.files.get('myfile').filename # POST方式上传的文件名 38 if filename: 39 request.files.get('myfile').save() # POST方式上传的文件保存 40 return '200 ok' 41 42 43 if __name__ == '__main__': 44 app.run('0.0.0.0', 8888, debug=True)
templates模板文件中的页面login.html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>login</title> 6 </head> 7 <body> 8 <form action="" method="post" enctype="multipart/form-data"> 9 用户名:<input type="text" name="username"> 10 密码:<input type="password" name="pwd"> 11 文件:<input type="file" name="myfile"> 12 <input type="submit" value="提交"> 13 </form> 14 </body> 15 </html>