当前位置: 首页>编程语言>正文

python spawn 变量 共享 flask 共享变量

flask学习要点

路由

配置

上下文处理器

1.0 上下文介绍

flask中有两个上下文,一个是应用上下文(app),另一个是请求上下文(request)。

应用上下文current_app和请求上下文request 都是一个全局变量,所有请求都是共享的。

flask有特殊的机制,可以保证每次请求的数据都是隔离的。所以可以直接导入request对象,也不会被一些脏数据影响,并且不需要在每个函数中使用request的时候,都导入request对象。

request: 请求上下文的对象,一般用来保存请求的变量,如:args、form等。
session:请求上下文的对象,一般用来保存会话信息。
current_app :应用上下文对象,返回当前的app。

print(app)

app2 = current_app

with app.app_context(): #添加上下文,让app2可以打印出来

print(app2)


g:应用上下文对象,处理请求时用来作临时存储的对象。

@app.route('/')

def login():

#res = Response('京东网')

# res.set_cookie('username', 'cheney', max_age=606024)

# session['username'] = 'jerry'

# session.permanent = True

# request.form.get('username')

# return res

username = session.get('username')g.username = username
log_a()
log_b()
return '这是首页'
g.username = username
log_a()
log_b()
return '这是首页'

2.0 常用的钩子函数
before_first_request 处理第一次请求之前执行
before_request 每次请求之前执行,这个装饰器通常用来给视图函数增加一些变量
teardown_appcontext 不管程序是否出错,都会执行
context_processor 上下文处理器,返回的字典中的键可以在模板上下文中使用
errorhandler:errorhandler接收状态码,可以自定义返回这种状态码的响应的处理方法。

request
response=make_response(...)
#响应头
#cookle
return response

5模板

render_template

6session

flask-session 将默认保存在cookle中的值
保存到redis/memcached/file/Mongodb/sqlalchemy中

2种方式保存:cookle'redis

7常见装饰器

before_render_template,
after_this_request
app.errorhandler(404)
app.before_request()
app.after_request()

闪现

中间件

蓝图

补充

1打包自己的包需要一个包
pip install pipreqs
打包依赖包 pipqeqs ./

数据库连接池

pip install DBUTILS
pip install mysqlclient最新
DbUtils(pymysql)
1每个线程创建一个链接,默认不关闭,线程终止是才关闭链接
2创建共享连接池,常用
只要写原生sql,就要用链接池

wtforms表单验证模块

from wtforms.form import Form
class myform(Form):
    user=类(正则,插件)
    字段=类(正则,插件)
    字段=类(正则,插件)

SQLAchemy 和flask-sqlalchemy

orm模型 对象关系映射模型
类————表
对象————记录(一行数据)
db first 表生成类
code first 类结构乘车表

原生sql语句比较

flask-script

脚本启动

flask-migrate

数据库迁移

localstack

对local中数据进行处理
对lacal中对象维护成堆栈
local={123:{stack:[ctx:]}

local

保存请求上下文对象/app对象
保持线程间数据隔离

上下文挂你器

请求刚进来requestcontext(request,session),appcontext(app,g)--local
视图处理localproxy()--偶函数--localstack()--local
请求结束localstack.pop()

        
            }

上下文管理器

请求上下文:request\session
app上下文:app\g

反射

信号

mtv和mvc

数据库 模板 视图

pymvsql操作

import  pymysql
com=pymysql.connect()
cursor=com.cursor()
row_1=cursor.fetchone()
cursor.close()
com.close()

面向对象的一些补充

cless a(c)
b=a()
1调用c.__call__
2调用a.__new__
3调用a.__init__
基类有Type实例化创造
类指定metaclass方法,则都由该类实例化
TYPE.__init__
type{__call__
lei>__new__
lei>__init__




https://www.xamrdz.com/lan/5vb1961051.html

相关文章: