flask杂七杂八

flask+Gunicorn(gevent)+sqlalchemy 高并发的解决方法探究

flask请求上下文应用上下文的实现

flask 中Flask(__name__)的理解

from flask import Flask
#引入Flask类,Flask类实现了一个WSGI应用

app = Flask(__name__)
#app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递__name__。
#让flask.helpers.get_root_path函数通过传入这个名字确定程序的根目录,以便获得静态文件和模板文件的目录。
 

@app.route('/')
#使用app.route装饰器会将URL和执行的视图函数的关系保存到app.url_map属性上。
#处理URL和视图函数的关系的程序就是路由,这里的视图函数就是hello_world。

def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=9000)

#服务器启动后,会调用werkzeug.serving.run_simple进入轮询,默认使用单进程单线程的werkzeug.serving.BaseWSGIServer处理请求,
#实际上还是使用标准库BaseHTTPServer.HTTPServer,通过select.select做0.5秒的“while TRUE”的事件轮询。

 flask配置中secret key的作用

SECRET_KEY 配置变量是通用密钥, 可在 Flask 和多个第三方扩展中使用. 如其名所示, 加密的强度取决于变量值的机密度. 不同的程序要使用不同的密钥, 而且要保证其他人不知道你所用的字符串.

但是主要的作用是在其加密过程中作为算法的一个参数(salt 或其他). 所以这个值的复杂度也就影响到了数据传输和存储时的复杂度.

另外, 考虑到安全性, 这个密钥是不建议存储在你的程序中的. 最好的方法是存储在你的系统环境变量中, 通过 os.getenv(key, default=None) 获得.

 

flask-socketio官方文档翻译

posted @ 2020-04-30 15:48  鱼虫光  阅读(136)  评论(0编辑  收藏  举报