如何通过Flask的request对象获取url

 更新时间:2024年07月08日 16:10:34   作者:Thomas_Lean  
这篇文章主要介绍了如何通过Flask的request对象获取url问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

通过Flask的request对象获取url

flask开发过程中,有时候需要获取当前请求url的相关数据,那么可以用以下方式获取url!!

flask测试请求地址:http://127.0.0.1:5000/main/index?page=10

实例如下:

from flask import request
@main.route('/main/index', methods=['GET', 'POST'])
@login_required
def index():
	host_url = request.host_url

request更多方法

  • 1.request.path: /main/index
  • 2.request.host: 127.0.0.1:5000
  • 3.request.host_url: http://127.0.0.1:5000/
  • 4.request.full_path: /main/index?page=10
  • 5.request.script_root:
  • 6.request.url: http://127.0.0.1:5000/main/index?page=10
  • 7.request.base_url: http://127.0.0.1:5000/main/index
  • 8.request.url_root: http://127.0.0.1:5000/

request对象、response对象、session对象

request对象

  • 作用:获取用户提供的信息
  • 语法:是实现了ServletRequest接口类的一个实例

使用表单向服务器的某个JSP页面提交信息

常用方法:

  • 设置编码方式:例如(用来防止汉字乱码)
request.setCharacterEncoding(“gb2312”);

同效果:

String str = request.getParameter(“message”);
byte[] b = str.getBytes(“ISO-8859-1”);
Str = new String(b);
  • getProtocol():获取提交信息使用的协议
  • getServletPath():获取请求的JSP页面文件的目录
  • getContextPath():获取请求的当前的web服务目录
  • getContentLength():获取提交信息的长度 
  • getMethod():获取提交信息的方法,例如:post、get
  • getHeader(s : String):获取http头文件中由参数s指定的头名字的值。

s可以为:accept,accept-language,content-type,accept-encoding,user-agent,host,content-length,connection,cookie

  • getHeaderNames():获取头名字的枚举类型
  • getHeaders(s : String):获取头文件中指定头名字的全部值的一个枚举
  • getRemoteAdr():获取用户的IP地址
  • getRemoteHost():获取用户的用户机名
  • getServletPort():获取服务器端号
  • GetParameterNames():获取提交信息中name参数值的一个枚举

response对象

作用:对用户的请求作出动态响应,向用户端发送数据

例如 :page指令为contentType指定一个值来决定响应MIME类型。

若想要动态的改变这个值可以用:

response.setContentType(s : String);   

s的取值可以是:text/jtml; text/plain; image/gif; image/x-xbitmap; image/jpeg; image/pjpeg; application/x-shockwave-flash;application/vnd.ms-powerpoint; application/vnd-ms-execel; application/msword等

请求和响应都包含一些方法头

使用:

response.addHeader(head : String, value : String);
或
response.setHeader(head : String, value : String);

动态的添加新的响应和头的值

例如:

response.setHeader(“Reflesh”, “5”);

表示每5秒刷新一次页面response重定向

  • 语法:response.setRedirect(url : URL); response状态行
  • 语法:response.setStatus(n : int);

session对象

说明:由Tomcat负责创建对象,用于存储用户访问服务器页面期间提交的各种信息。每个对象都会被分配一个String类型的ID号(可以使用session.getId();获取),存放在Cookie中,同一个用户在不同的文本服务目录中session互不相同。

实现session对象的唯一性:一般的用户端支持了Cookie,就已经实现了对象的唯一性。

如果没有支持,那就可以通过重写URL来实现session对象的唯一性。调用encodeURL(id : String)或encodeRedirectURL(id : String)方法,向新的URL中添加参数,将session对象的id传递过去。

  • setAttribute(key : String, obj : Object) : void  存储对象,添加索引
  • getAttribute(key : String) : Object  使用索引,获取对象
  • getAttributeNmaes() : Enumeration 产生一个枚举对象,可以使用nextElems() 遍历session 中的各个对象对应的关键字
  • removeAttribute(key : String) : void  移除关键字对应的对象
  • getCreationTime() : long  获取session创建的时间(毫秒)
  • getLastAccessedTime() : long   session最后一次被/操作的时间(毫秒)
  • getMaxInactiveInterval() : int   获取最长发呆时间(秒)
  • setMaxInactiveInterval(interval : int)  设置最长的发呆时间(秒)
  • isNew() : boolean  判断session是否是最新创建的
  • invalidate() : void   使session无效

session的生存周期:

1.调用invalidate()方法,使session无效

2.达到设置的最长发呆时间

3.关闭服务器

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python 给我一个链接西瓜视频随便下载爬虫

    Python 给我一个链接西瓜视频随便下载爬虫

    这篇文章主要介绍了Python通过一个链接爬取西瓜视频,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Python文本进度条实现过程

    Python文本进度条实现过程

    文章介绍了使用`print()`函数实现简单的非刷新文本进度条的方法,并按照任务执行百分比来更新进度条,提供了单行动态刷新和带刷新的文本进度条的示例,此外,还设计了不同风格的进度条更新函数,以适应不同的需求和偏好
    2026-04-04
  • Python语言描述KNN算法与Kd树

    Python语言描述KNN算法与Kd树

    这篇文章主要介绍了Python语言描述KNN算法与Kd树,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 详解Python枚举的定义与用法

    详解Python枚举的定义与用法

    这篇文章主要介绍了详解Python枚举的定义与用法,在Python中,枚举和我们在对象中定义的类变量时一样的,每一个类变量就是一个枚举项,需要的朋友可以参考下
    2023-04-04
  • Swin Transformer模块集成到YOLOv5目标检测算法中实现

    Swin Transformer模块集成到YOLOv5目标检测算法中实现

    这篇文章主要为大家介绍了Swin Transformer模块集成到YOLOv5目标检测算法中实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • python 实现dcmtk关联pacs功能推送下拉影像(推荐)

    python 实现dcmtk关联pacs功能推送下拉影像(推荐)

    这篇文章主要介绍了python 实现dcmtk关联pacs功能 推送下拉影像,包含dcmtk关联pacs技术笔记等相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Python3+Appium实现多台移动设备操作的方法

    Python3+Appium实现多台移动设备操作的方法

    这篇文章主要介绍了Python3+Appium实现多台移动设备操作的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • tensorflow pb to tflite 精度下降详解

    tensorflow pb to tflite 精度下降详解

    这篇文章主要介绍了tensorflow pb to tflite 精度下降详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python如何进行时间处理

    Python如何进行时间处理

    这篇文章主要介绍了Python如何进行时间处理,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • Python中的引用知识点总结

    Python中的引用知识点总结

    在本文里我们给大家整理了关于Python中的引用知识点以及相关代码总结,需要的朋友们跟着学习下。
    2019-05-05

最新评论