小知识:
1、子类继承父类的三种方式
class Dog(Animal): #子类 派生类
def __init__(self,name,breed, life_value,aggr):#Animal.__init__(self,name,breed, life_value,aggr)#让子类执行父类的方法 就是父类名.方法名(参数),连self都得传
super().__init__(name,life_value,aggr) #super关键字 ,都不用传self了,在新式类里的
#super(Dog,self).__init__(name,life_value,aggr) #上面super是简写
self.breed =breeddef bite(self,person): #狗的派生方法
person.life_value -=self.aggrdef eat(self): #父类方法的重写
super().eat()print('dog is eating')
2、对象通过索引设置值的三种方式
方式一:重写__setitem__方法
classFoo(object):def __setitem__(self, key, value):print(key,value)
obj=Foo()
obj["xxx"] = 123 #给对象赋值就会去执行__setitem__方法
方式二:继承dict
classFoo(dict):passobj=Foo()
obj["xxx"] = 123
print(obj)
方式三:继承dict,重写__init__方法的时候,记得要继承父类的__init__方法
classFoo(dict):def __init__(self,val):#dict.__init__(self, val)#继承父类方式一
#super().__init__(val) #继承父类方式二
super(Foo,self).__init__(val)#继承父类方式三
obj = Foo({"xxx":123})print(obj)
总结:如果遇到obj["xxx"] = xx ,
- 重写了__setitem__方法
- 继承dict
3、测试__name__方法
示例:
app1中:importapp2print('app1', __name__)
app2中:print('app2', __name__)
现在app1是主程序,运行结果截图
总结:如果是在自己的模块中运行,__name__就是__main__,如果是从别的文件中导入进来的,就不是__name__了
一、设置配置文件的几种方式
==========方式一:============
app.config['SESSION_COOKIE_NAME'] = 'session_lvning' #这种方式要把所有的配置都放在一个文件夹里面,看起来会比较乱,所以选择下面的方式==========方式二:==============
app.config.from_pyfile('settings.py') #找到配置文件路径,创建一个模块,打开文件,并获取所有的内容,再将配置文件中的所有值,都封装到上一步创建的配置文件模板中print(app.config.get("CCC"))
=========方式三:对象的方式============ importos
os.environ['FLAKS-SETTINGS'] = 'settings.py'app.config.from_envvar('FLAKS-SETTINGS')===============方式四(推荐):字符串的方式,方便操作,不用去改配置,直接改变字符串就行了 ==============
app.config.from_object('settings.DevConfig')
----------settings.DevConfig----------
from app import app
class BaseConfig(object):
NNN = 123 #注意是大写
SESSION_COOKIE_NAME = "session_sss"
class TestConfig(BaseConfig):
DB = "127.0.0.1"
class DevConfig(BaseConfig):
DB = "52.5.7.5"
class ProConfig(BaseConfig):
DB = "55.4.22.4"
要想在视图函数中获取配置文件的值,都是通过app.config来拿。但是如果视图函数和Flask创建的对象app不在一个模块。就得
导入来拿。可以不用导入,。直接导入一个current_app,这个就是当前的app对象,用current_app.config就能查看到了当前app的所有的配置文件
from flask import Flask,current_app
@app.route('/index',methods=["GET","POST"])defindex():print(current_app.config) #当前的app的所有配置
session["xx"] = "fdvbn"
return "ind