python学习之Flask框架(二)

简介: python学习之Flask框架(二)

request参数的使用


常用的request参数:

属性

说明

类型

values

记录请求的数据,并转换为字符串

*

form

记录请求中的表单数据

MultiDict

args

记录请求中的查询参数

MultiDict

cookies

记录请求中的cookie信息

Dict

headers

记录请求中的报文头

EnvironHeaders

method

记录请求使用的HTTP方法

GET/POST

url

记录请求的URL地址

string

files

记录请求上传的文件

*

下面是url、method、headers的简单使用:

from flask import Flask,request
app = Flask(__name__)
@app.route('/args',methods=['POST','GET'])
def index():
    url = request.url
    method  = request.method
    headers = request.headers.get('Content-Type')
    return f'hello == {url} == {method} == {headers}'
if __name__ == '__main__':
    app.run(debug=True)

url_for 函数的使用


通过函数反向找到路由地址

from flask import Flask,url_for
app = Flask(__name__)
@app.route('/index')
def index():
    return 'hello'
@app.route('/home/<int:uid>')
def home(uid):
    return f'hello{uid}'
@app.route('/show_rul')
def show_url():
    #第一个参数是函数的名字
    #url = url_for("home") 
    #第二次参数默认开始匹配路径参数了,匹配不上就会以查询参数进行处理
    url = url_for("home",uid=1001)
    return f'反向查找到的url地址:{url}'
if __name__ == '__main__':
    app.run(debug=True)

为什么选择url_for 而不选择直接在代码中拼 URL 的原因有两点:


  1. 1.将来如果修改了 URL ,但没有修改该 URL 对应的函数名,就不用到处去替换URL 。

  2. 2.url_for() 函数会转义一些特殊字符和 unicode 字符串,这些事情 url_for 会自动的帮我们转义。


响应——重定向


有两种重定向:


1.永久性重定向,此时http的状态码为301,用于旧网址废弃后需要转到新的网址。


2.暂时性重定向,此时http的状态码为302,表示页面暂时性的转跳。例如:需要登陆才能获取权限的网站,如果用户没有登录,则会重定向到登录页面。


flask中重定向


通过redirect(location,code=302)函数来实现,location表示需要定向到的url,code表示采用哪个重定向,默认为302(暂时性重定向),可以修改为301(永久性重定向)。

from flask import Flask,redirect,url_for
app = Flask(__name__)
@app.route('/login/')
def login():
    return f'登录页面'
@app.route('/info/')
def info():
    return redirect(url_for('login'),code=302)
if __name__ == '__main__':
    app.run(debug=True)

使用redirect函数时可以配合url_for函数使用可以有效提高效率,减少工作量。


响应——响应内容


返回字符串:

from flask import redirectd
@app.route('/return_str')
def return_str():
  return "hello!!"

返回JSON

from flask import jsonify
app.config['JSON_AS_ASCII'] = False
@app.route('/return_json1')
def return_json1():
  json_dict = {
    "msg_int": 10,
    "msg_str": "hello!!"
   }
  return jsonify(json_dict)
@app.route('/return_json2')
def return_json2():
  json_dict = {
    "msg_int": 10,
    "msg_str": "hello!!"
   }
  return json_dict

响应——自定义响应


需要导入Response或make_response,可以对状态码、主体部分和响应头进行修改。


具体代码如下:

from flask import Flask,Response,make_response
app = Flask(__name__)
@app.route('/')
def index():
    return Response('hello!!!!',status=500)
app.route('/home/')
def home():
    resp = make_response('创建response对象')
    resp.status = 666
    return resp
if __name__ == '__main__':
    app.run(debug=True)
相关文章
|
3月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
69 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
3月前
|
JSON 监控 BI
拼多多批量下单工具,拼多多买家批量下单软件,低价下单python框架分享
使用Selenium实现自动化操作流程多线程订单处理提升效率
|
3月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
12天前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
1月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
|
1月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
|
3月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
3月前
|
存储 API 数据库
自动发短信的软件,批量自动群发短信,手机号电话号生成器【python框架】
这个短信群发系统包含以下核心功能: 随机手机号生成器(支持中国号码) 批量短信发送功能(使用Twilio API)
|
3月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
3月前
|
JSON 机器人 API
微信机器人自动回复插件,vx自动回复机器人脚本助手,python框架分享
这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能

推荐镜像

更多