Werkzeug学习笔记

Werkzeug学习笔记useragent模块UserAgent(ua:str)#ua测试字符串ua=’Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/60.0.3112.101Safari/537.36’#实例化user_

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

useragent模块

  1. UserAgent(ua:str)
    # ua测试字符串
    ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'
    # 实例化
    user_agent = useragents.UserAgent(ua)
    .platform -> windows
    .version -> 60.0.3112.101
    .string -> Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36
    .language -> None
    .brower -> chrome

urls模块

routing模块

wsgi模块

  1. get_current_url(environ, root_only=False, strip_querystring=False,host_only=False, trusted_hosts=None)
  2. host_is_trusted(hostname, trusted_list) -> 暂时不清楚
  3. get_host(environ, trusted_hosts=None) -> 传入env,获取host
  4. get_content_length(environ)
  5. get_input_stream(environ, safe_fallback=True, max_content_length=None)
  6. get_input_stream(environ, safe_fallback=True, max_content_length=None) -> 从WSGI环境返回输入流,并以最明智的方式进行包装。 在大多数情况下,返回的流不是原始的WSGI流,但是在不考虑内容长度的情况下可以安全地读取流。(暂时不清楚)
  7. get_query_string(environ)
  8. get_path_info(environ, charset='utf-8', errors='replace') -> URL路径除了起始部分后的剩余部分,用于找到相应的应用程序对象,如果请求的路径就是根路径,这个值为空字符串 从WSGI环境返回“PATH_INFO”,并正确解码它。 这也关注了在Python 3环境下的WSGI解码舞蹈。 如果charset设置为None,则返回一个bytestring。(暂时不清楚)
  9. get_script_name(environ, charset='utf-8', errors='replace')
  10. pop_path_info(environ, charset='utf-8', errors='replace') -> 删除并返回“PATH_INFO”的下一个段,将其推送到“SCRIPT_NAME”上。 如果PATH_INFO上没有任何内容,则返回None。 如果charset设置为None,则返回一个bytestring。 如果有空段('/ foo // bar)这些被忽略,但被正确地推到“SCRIPT_NAME”
  11. peek_path_info(environ, charset='utf-8', errors='replace') -> 如果没有,返回“PATH_INFO”或“无”的下一个段。 工作原理如下:func:pop_path_info而不修改环境
  12. extract_path_info(environ_or_baseurl, path_or_url, charset='utf-8', errors='replace', collapse_http_schemes=True) -> 从给定的URL(或WSGI环境)和路径中提取路径信息。 返回的路径信息是一个unicode字符串,而不是一个适合WSGI环境的bytest。 这些URL也可能是IRI。 如果无法确定路径信息,则返回“None”
  13. class SharedDataMiddleware(object) -> 用于处理静态文件
  14. class DispatcherMiddleware(object) -> 组合多个app

    application = DispatcherMiddleware(firstapp, {'/secondapp': secondapp, '/thirdapp': thirdapp})
    run_simple('localhost', 5000, application, use_reloader=True, use_debugger=True)

wrappers模块

  1. BaseRequest对象

    • form属性,数据结构为werkzeug.datastructures.ImmutableMultiDict,可以通过parameter_storage_class来修改(如果表单顺序有要求,这可能是必需的)
    • valules属性,把form表单和get参数组合起来放在一个字典里面,数据结构为CombinedMultiDict。例如:

      CombinedMultiDict([ImmutableMultiDict([('name', 'xiaoming')]), ImmutableMultiDict([('age', '12')])])
          取值:
              name = values.get('name')
              age = values.get('age)
      
    • files属性,包括所有的上传文件。数据结构werkzeug.datastructures.MultiDict,键名为input标签的name属性,每个value代表一个真实文件,数据结构为werkzeug.datastructures.FileStorage,就像一个标准的Python文件对象,不过有一个单独的方法.save()用来将文件存放在本地。注意客户端需使用POST/PUT/PATCH的其中一个方式,并且表单要设置enctype="multipart/form-data,否则会接收到空字典

    • cookies属性,一个字典,里面存放了cookies信息
    • headers属性,数据结构werkzeug.datastructures.EnvironHeaders,从WSGI环境里面读出来的头信息,dict形式
    • full_path属性,http://localhost:5000/form?namea=xiaoming -> /form?namea=xiaoming
    • script_root属性,The root path of the script without the trailing slash.
    • url属性,全路径
    • base_url,基本路径http://localhost:5000/form?namea=xiaoming -> http://localhost:5000/form
    • url_root -> 根路径 http://localhost:5000/form?namea=xiaoming -> http://localhost:5000/
    • host_url -> host+协议 http://localhost:5000/form?namea=xiaoming -> http://localhost:5000/
    • host -> localhost:5000
    • query_string get的查询数据 http://localhost:5000/form?namea=xiaoming ->b'namea=xiaoming'
    • method 请求方法GET/POST
    • access_route 如果转发的头部存在,这是从客户端ip到最后一个代理服务器的所有ip地址的列表
    • remote_addr -> 客户端IP
    • remote_user -> If the server supports user authentication, and the script is
      protected, this attribute contains the username the user has
      authenticated as.
    • scheme -> 协议 http/https
    • is_xhr属性,用X-Requested-With来判断的,所以不一定可信
    • environ一个wsgi和env对象,是一个字典
      • REQUEST_METHOD -> GET|POST
      • SCRIPT_NAME -> ''
      • PATH_INFO -> /form
      • QUERY_STRING -> namea=xiaoming
      • SERVER_NAME -> 127.0.0.1
      • SERVER_PORT -> 5000
      • HTTP_HOST -> localhost:5000
      • SERVER_PROTOCOL -> HTTP/1.1
      • wsgi.url_scheme -> http
      • CONTENT_TYPE -> ”
      • CONTENT_LENGTH -> 0
      • HTTP_CONNECTION -> close
      • HTTP_COOKIE
      • HTTP_ACCEPT_LANGUAGE -> zh-CN,zh;q=0.8
      • HTTP_ACCEPT_ENCODING -> gzip, deflate, br
      • HTTP_DNT -> 1
      • HTTP_ACCEPT -> text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
      • HTTP_USER_AGENT
      • HTTP_UPGRADE_INSECURE_REQUESTS
      • HTTP_CACHE_CONTROL -> max-age=0
      • HTTP_HOST -> localhost:5000
      • REMOTE_PORT -> 50556
      • REMOTE_ADDR -> 127.0.0.1
      • SERVER_SOFTWARE -> Werkzeug/0.12.2
      • wsgi.version -> 1,0
      • wsgi.url_scheme -> https
      • wsgi.input -> ''
      • wsgi.errors
      • wsgi.multithread -> False
      • wsgi.multiprocess -> False
      • wsgi.run_once -> False
  2. BaseResponse对象
    set_cookie(self, key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False) -> 设置响应体的Cookies
    delete_cookie(self, key, path='/', domain=None) -> 删除cookie

utils模块

  1. secure_filename(filename) -> 返回安全文件名
  2. escape(s,quote=None) -> 字符串转义
  3. unescape(s) -> 反转义
  4. redirect(location, code=302, Response=None) -> 重定向
  5. append_slash_redirect(environ, code=301) -> 给url的尾巴上添加/,以生成唯一的url。haonse.com -> haonse.com/

serving模块

security模块

  1. pbkdf2_hex(data, salt, iterations=DEFAULT_PBKDF2_ITERATIONS,keylen=None, hashfunc=None) -> 类似 :func:pbkdf2_bin, but 返回一个 hex-encoded 字符串
  2. pbkdf2_bin(data, salt, iterations=DEFAULT_PBKDF2_ITERATIONS, keylen=None, hashfunc=None) -> pbkdf2算法生成密钥
  3. safe_str_cmp(a, b)– > 两个字符串比较
  4. gen_salt(length) -> 生成一个盐(随机字符串)
  5. generate_password_hash(password, method='pbkdf2:sha256', salt_length=8) -> 用指定的方法和盐的长度生成密码
  6. check_password_hash(pwhash, password) -> 验证上面的
  7. safe_join(directory, *pathnames) -> 生成一个安全的path

local模块

formparser模块

http模块

  1. wsgi_to_bytes(data) -> 将data转成latin1
  2. bytes_to_wsgi -> 相反
  3. parse_cookie(header, charset='utf-8', errors='replace', cls=None): -> 把raw_cookies解析成一个字典
  4. dump_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, charset='utf-8', sync_expires=True, max_size=4093): -> 装成一个cookie

filesystem模块

  1. get_filesystem_encoding -> 返回系统编码。注意:这与Python对文件系统编码的理解不同,不建议将此值用于Python的unicode API。(不知道这个函数是用来干什么的,用到了再看)

datastructures模块

exceptions模块

posixemulation模块

test模块

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185009.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 第三章 软件项目范围管理

    第三章 软件项目范围管理项目范围对项目的影响是决定性的,它确定了软件项目工作内容的多少。有效的范围管理可以保证项目只做必须做的事情,避免范围蔓延和做无用功,同时也避免不清晰的需求所导致的严重的系统缺陷。 本章内容提要n3.1需求获取n3.2范围定义n3.3创建工作分解结构n3.4范围确认n3.5范围控制n3.6案例分析3.1需求获取n需求获取工作的任务就是收集项目干系人的需求信息,为定义项目的范围奠定基础。…

  • allure生成的报告怎么查看_allure测试报告

    allure生成的报告怎么查看_allure测试报告原因可能由于:因为pytest-allure-adaptor库基本被python3放弃了,运行很不友好,所以报错解决方法:terminal中先卸载:pipuninstallpytest-allure-adaptor再安装:pipallure-pytest若安装找不到该模块可以去设置那下载…

  • JMM简介_英文缩写jmy啥意思

    JMM简介_英文缩写jmy啥意思Java的内存模型JMM(JavaMemoryModel)JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计,系统存在一个主内存(MainMemory),Java中所有实例变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(WorkingMemory),工作内存由缓存和堆栈两部分组成,缓存中保存的是主存中变量的拷贝,缓存可能并不总和主存同步,也就是缓存中变量的修改可能没有立刻写到主存中;堆栈中保存的是线程的局部变量,线程之间无法相互直接访问堆栈中的变量。JM

  • 如何理解cicd

    如何理解cicd项目开发可以分为这几个过程编码->构建->集成->测试->交付->部署首先引用一个例子譬如说,你开了一家公司,雇了很多码农在一起写代码。你说,要用Gitlab做代码管理。当一个码农在自己的开发机上写好代码之后,要合并到主分支里,他首先要发起一个MergeRequest(MR),这会在一个特定服务器上触发一次对他提交的代码的检查,包括代码格式检查、依赖关系检查以及单元测试等一系列检查,等通过了全部检查,他就可以将代码合并到主分支,否则他需

  • golang2021激活码【2021免费激活】

    (golang2021激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html2JTX0APX6F-eyJsaWNlbnNlSWQi…

  • 大数据建模与分析挖掘相关了解「建议收藏」

    大数据建模与分析挖掘相关了解「建议收藏」一.大数据总体架构与规划二.各类数据的采集三.相关名词的了解MP:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念”Map(映射)“和”Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Ma…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号