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)


相关推荐

  • Odin Inspector 系列教程 — Show If Attribute

    Odin Inspector 系列教程 — Show If AttributeShowIfAttribute用于任何属性,并且可以在检查器中隐藏该属性。使用此选项可根据对象的当前状态隐藏不相关的属性。这个特性的效果主要是当指定条件满足时,显示对应的属性,默认传入的参数为对应属性的名称,如果为True或者不为null时,显示属性[ShowIf(“IsToggled”)]publicVector2VisibleWh…

  • idea2021 激活码【最新永久激活】

    (idea2021 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • 进程调度算法设计_三种调度算法

    进程调度算法设计_三种调度算法【实验目的】进程管理是操作系统中的重要功能,用来创建进程、撤消进程、实现进程状态转换,它提供了在可运行的进程之间复用CPU的方法。在进程管理中,进程调度是核心,因为在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态,当就绪进程个数大于处理器数目时,就必须依照某种策略决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的进程调度,目的是加深对进程调度工作的理解,掌握不…

  • MySQL 事务隔离级别[通俗易懂]

    MySQL 事务隔离级别[通俗易懂]1.理论MySQL中事务的隔离级别一共分为四种,分别如下: 序列化(SERIALIZABLE) 可重复读(REPEATABLEREAD) 提交读(READCOMMITTED) 未提交读(READUNCOMMITTED) 四种不同的隔离级别含义分别如下: SERIALIZABLE ❝如果隔离级别为序列化,则用户之间通过一个接一个顺序地执行当前的事务,这种隔离级别提供了事务之间最大限度的隔离。 REPEATABLEREAD ❝在可

    2022年10月14日
  • mapminmax数据归一化(第一次完整看好help文档)

    mapminmax数据归一化(第一次完整看好help文档)mapminmax一、[Y,PS]=mapminmax(X)函数功能:将矩阵的每一行压缩到[-1,1],其中当前行的最大值变为1,最小值变为-1。(这是默认的参数)扩展:(修改参数)1.[Y,PS]=mapminmax(X,YMIN,YMAX)将矩阵的每一行压缩到[YMIN,YMAX],其中当前行的最大值变为YMAX,最小值变为YMIN。2. [Y,

  • 高德地图marker的遮挡问题

    高德地图marker的遮挡问题高德地图marker的遮挡问题varmarker=newAMap.Marker({position:[longitude,latitude,],map:map,icon:startIcon,});marker.on(“mouseover”,function(e){e.t

发表回复

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

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