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) 获得.