如何为巢湖建设一个专业的网站?
摘要:网站 例,巢湖网站建设,移动网站mip,给网站公司做网站登录认证装饰器 # 0 装饰器的本质原理-# 类装饰器:1 装饰类的装饰器 2 类作为装饰器# 1 装饰器使用位置,顺序
网站 例,巢湖网站建设,移动网站mip,给网站公司做网站登录认证装饰器
# 0 装饰器的本质原理-# 类装饰器#xff1a;1 装饰类的装饰器 2 类作为装饰器
# 1 装饰器使用位置#xff0c;顺序
# 3 flask路由下加装饰器#xff0c;一定要加endpoint-如果不指定endpoint#xff0c;反向解析的名字都是函数名#xff0c;不加装饰器…登录认证装饰器
# 0 装饰器的本质原理-# 类装饰器1 装饰类的装饰器 2 类作为装饰器
# 1 装饰器使用位置顺序
# 3 flask路由下加装饰器一定要加endpoint-如果不指定endpoint反向解析的名字都是函数名不加装饰器没有问题就是正常函数indexdetail-如果加了装饰器---》indexdetail都变成了inner---》反向解析的名字都是函数名inner报错了-wrapper装饰器----》把它包的更像---》函数名变成了原来函数的函数名
def add(func):print(func)# 类装饰器1 装饰类的装饰器 2 类作为装饰器# add 一定是个函数吗
# 放个对象
class Person:def __call__(self, func):def inner(*args, **kwargs):res func(*args, **kwargs)return resreturn innerp Person()# add # testadd(test)---test变成了None
p # testp(test) # p() 会触发__call__---Person的 __call__(func)---返回inner以后test就是inner---》test(参数)--》执行的是inner
def test():print(test)print(test)def auth(func):def inner(*args, **kwargs):res func(*args, **kwargs) # 真正的执行视图函数执行视图函数之判断是否登录res.namelqzreturn resreturn innerauth # Fooauth(Foo)
class Foo():passfFoo() # Foo() 调用 ---》inner()---类实例化得到对象返回以后f就是Foo的对象但是可以里面多了属性或方法
print(f)
print(f.name)### 有参装饰器---额外为被装饰的函数传参数
auth(10) # Fooauth(10)(Foo)
class Foo():pass
配置文件 PS 由于Config对象本质上是字典所以还可以使用app.config.update(...)
app.config[DEBUG] True#通过py文件配置
app.config.from_pyfile(python文件名称)
如
settings.py
DEBUG True
app.config.from_pyfile(settings.py)#通过环境变量配置
app.config.from_envvar(环境变量名称)
#app.config.from_pyfile(os.environ[YOURAPPLICATION_SETTINGS])
环境变量的值为python文件名称名称内部调用from_pyfile方法# JSON文件名称必须是json格式因为内部会执行json.loads
app.config.from_json(json文件名称)# 字典格式
app.config.from_mapping({DEBUG: True})# 对象
app.config.from_object(python类或类的路径)app.config.from_object(pro_flask.settings.TestingConfig)settings.pyclass Config(object):DEBUG FalseTESTING FalseDATABASE_URI sqlite://:memory:class ProductionConfig(Config):DATABASE_URI mysql://userlocalhost/fooclass DevelopmentConfig(Config):DEBUG Trueclass TestingConfig(Config):TESTING TruePS: 从sys.path中已经存在路径开始写PS: settings.py文件默认路径要放在程序root_path目录如果instance_relative_config为True则
