如何通过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.关闭服务器

总结

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

相关文章

  • CentOS6.5设置Django开发环境

    CentOS6.5设置Django开发环境

    这篇文章主要为大家详细介绍了CentOS6.5设置Django开发环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Pandas Query方法使用深度总结

    Pandas Query方法使用深度总结

    大多数Pandas用户都熟悉iloc[]和loc[]索引器方法,用于检索行和列。但是随着检索数据的规则变得越来越复杂,这些方法也随之变得更加复杂而臃肿。本文将展示如何使用 query() 方法对数据框执行查询,感兴趣的可以了解一下
    2022-07-07
  • python基础之输入与输出

    python基础之输入与输出

    这篇文章主要介绍了python的输入与输出,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10
  • Python 迭代器和生成器概念及场景分析

    Python 迭代器和生成器概念及场景分析

    yield 是 Python 中实现惰性计算和协程的核心工具,结合 send()、throw()、close() 等方法,能够构建高效、灵活的数据流和控制流模型,这篇文章主要介绍了Python 迭代器和生成器概念,需要的朋友可以参考下
    2025-04-04
  • python学习实操案例(三)

    python学习实操案例(三)

    这篇文章主要介绍了python学习实操案例,循环输出26个字母对应的ASCII码值、模拟用户登录、猜数游戏练习等案例,需要的小伙伴可以参考一下,希望对你有一定的帮助
    2022-02-02
  • Python函数元数据实现为一个参数指定多个类型

    Python函数元数据实现为一个参数指定多个类型

    这篇文章主要介绍了Python函数元数据实现为一个参数指定多个类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • numpy求解线性代数相关问题

    numpy求解线性代数相关问题

    本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • pytorch中retain_graph==True的作用说明

    pytorch中retain_graph==True的作用说明

    这篇文章主要介绍了pytorch中retain_graph==True的作用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 利用Python来实现阿姆斯特朗数的检查实例

    利用Python来实现阿姆斯特朗数的检查实例

    这篇文章主要给大家介绍了关于利用Python来实现阿姆斯特朗数的检查的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python中的迭代器与生成器使用及说明

    Python中的迭代器与生成器使用及说明

    这篇文章主要介绍了Python中的迭代器与生成器使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论