发布于: 2023-7-6最后更新: 2023-7-25字数 00 分钟

FLASK_SETTINGS_MODULE

在 Flask 制定的配置规则中,FLASK_SETTINGS_MODULE 环境变量应该被设置为 Flask 应用程序配置模块的 Python 导入路径,即模块的名称,而不是文件路径。这是一种惯例,可以让应用程序的配置与应用程序的代码分离。
在 Flask 中,FLASK_SETTINGS_MODULE 环境变量应该被设置为 Flask 应用程序配置的 Python 导入路径,即模块的完整名称(From Object To Relational db). 这个设置规则需要遵循 Python 的包结构,每个点分隔符表示一个级别的包。
 

Fiddler调试:SSL: WRONG_VERSION_NUMBER

使用Fiddler对web服务进行抓包时出现错误(关闭fiddler则没有该错误)。
原因:
没懂。Fiddler默认会捕捉HTTPS的流量,但是对转发的HTTPS包无法处理。即设置了一个系统代理https_proxy=https://127.0.0.0.1:8888,但是该127的https服务器默认起不来。
解决:
  1. 取消Fiddler中捕捉HTTPS流量,在option→https中取消勾选。
另一个思路,让fiddler捕捉https流量,安装证书,试了之后也不行。
clash这种代理也可以转发各种包,http、https都可以转发,也能捕捉所有流量。为啥fiddler代理就不行,https的包不能拆开单纯就是开不到流量里面的内容而已。
第一种可以启动,第二种无法启动。会显示:
requests.exceptions.ProxyError: HTTPSConnectionPool(host): Max retries exceeded with url: /realms/euler/.well-known/openid-configuration (Caused by ProxyError('Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#https-proxy-error-htt p-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1091)'))))
无法代理https,啊?不确定是python库的问题还是fiddler的问题,没有别的https的接口来测试。

工程规范

其中主要对注释规范进行重点学习。
其中docstring:
• 为所有公共模块、函数、类和方法编写文档字符串。文档字符串对于非公共方法不是必需的,但您应该有一个注释来描述该方法的作用。此注释应显示在 def 行之后。
在Pycharm中添加一些注释模板:
  • 新建py文件:参考fof原有工程的代码,添加以下模板,在File->settings->Editor->File and Code Templates->Python Script
    • 函数注释。
      • 普通函数注释,直接使用”””调出模板,File | Settings | Tools | Python Integrated Tools | Docstring format,选择plain风格(默认)。
      • 针对部分已有文件中函数的修改或添加,为表示所有人,再添加作者相关信息的,使用LiveTemplate。File -> Settings -> Editor -> Live Templates。作为前一个的补充。
       
      参考:
      1. 使用PyCharm为Python函数增加注释_pycharm函数提升
      1. (53条消息) pyCharm中添加方法注释(Docstring format & Live Templates)_pycharm 添加方法注释_dkjkls的博客-CSDN博客
       

      数据库

      大小写问题:
      ORACLE执行SQL时,对于没有””双引号包裹的表名,会将其自动转换为大写的。(ORACLE默认希望以大写编码表名和字段
      对于pandas,在使用pandas.read_sql()函数从数据库中读取数据时,如果数据库中的列名使用的是大写字母或者是混合大小写的形式,那么读取到的列名会被自动转换为小写。这是因为pandas默认会将所有的列名转换为小写字母格式

      Python异常处理

      在异常处理调用链中:有以下代码:
      一直以为第三段try捕获到了异常,处理完了,为什么还是没有执行第二段后续代码,而是继续抛出异常给第一段代码,就很奇怪。然后发现结果是更外层有个异常捕获:
      并不是我理解不对,第三段捕获后处理就处理了。但是处理的时候又出现别的错误,抛出其他异常,结果被最外层捕获,缺什么都没处理。直接就迷惑了。
      警示:千万不能随便捕获过于宽泛的异常又不处理。认真对待IDE提示的Warning.
       

      git merge specific commit

      使用git cherry-pick

      pip install xx[extra]

      用于安装该包中额外的组件,包含下载额外的依赖。
      比如。$ pip install flask-jwt-extended[asymmetric_crypto]会额外下载cryptography包。

      Spring Boot
      Spring Boot

      这篇文章介绍了Spring和Spring Boot的基本概念和区别,以及Servlet和Reactive的不同请求处理方式。还介绍了Spring Boot的自动配置和常用的property,以及使用OAuth2库对资源服务器jwt的支持。最后,提供了一些关于maven的小问题汇总。


      南方实习教训总结
      南方实习教训总结

      这篇文章总结了南方实习的教训,主要是关于主动性不够、决策不够谨慎、发散思维不够、不会做复杂决策等方面。作者认为,要勇敢地去寻求信息,就像解决工程问题一样,需要广泛交流和讨论,有勇气地挖掘一切,为了找到求知的“知”。