1. 实例化Flask对象(app=Flask(模块名,静态资源访问前缀,静态资源在当前主目录下的目录名,指定模块目录名))时参数说明:
A:第一个参数指定模块名,如果模块名不存在则以当前文件所在目录为主目录,
注意:模块名不能是系统模块,否则虽然不影响路由匹配,但是影响加载资源的加载
B:第二个参数:static_url_path指定访问静态资源路由的前缀,默认值为/static
C: 第三个参数:static_folder:指定静态资源在当前主目录下的目录名,默认值为static
D:第四个参数:template_folder="templates":指定主目录下模板目录的目录名
2. app.run()参数说明:
A:host:指定当前程序运行的主机IP,可以是127.0.0.1,localhost或者本机的IP地址,如果想通过所有本机的IP地址能够访问
当前应用,则可以将IP地址设置为0.0.0.0,默认值为127.0.0.1
B: port:指定当前应用程序运行时绑定的端口号,默认值为5000
C: debug:指定当前应用程序是否运行在调试模式下,默认值为False,如果想运行在调试模式下则debug=True即可
3. 视图函数的访问
A:不同的路由访问相同的视图函数,都可以正常访问
@app.route("/")
@app.route("/index")
def index():
return "index page"
B:相同的路由访问不同的视图函数
如果客户端的访问方式相同,则按照app.url_map的返回值对象Map()中的列表的顺序访问,以最先搜索到的为准
如果客户端的访问方式不同,则根据不同的访问方式自动访问相应的视图函数
4.app.url_map:里面存储了当前app中所有的访问规则组成的列表,总体放在Map对象中
5. @app.route("访问路径","客户端的访问方式",endpoint(安得破音的)(端点))
访问路径即为路由
客户端的访问方式:GET,POST,PUT,DELETE
endpoint为端点,默认值为视图函数名
flask的核心是Werkzeug(瓦克肉壳)和Jinja2(金价吐), 所以在安装Flask的同时, 会自动安装上面的两个依赖.
查看安装的虚拟环境模块的版本:virtualenv --version
1. 在当前目录下新建目录static,然后在static目录下新建index.html文件,则重启服务器后可以使用路径:
http://127.0.0.1:5000/static/index.html访问
6. 重定向:redirect(url)
7.反向解析:通过端点名(endpoint)得到路由路径,如果在定义路由时没有指定端点名,则默认端点名和视图函数名同名
A:url_for(端点名),例如url_for("index"),此时index()函数上面的路由不需要传递参数,例如:@app.route("/index")
B:url_for(端点名,参数名=参数值),例如url_for("index",username="zhangsan"),此时index()函数上面的路由需要传递参数:
@app.route("/index/<参数名>")
8. flask配置文件的加载方式:
A.从配置对象中加载
class DefaultConfig:
MY_SQL_HOST = "127.0.0.1"
MY_SQL_PORT = 3306
# 将类中的属性名作为字典的key,属性值作为字典的value,添加到了Config类内部包含的字典中
app.config.from_object(DefaultConfig)
读取值:app.config.get()或者app.config["key"]
B.从配置文件中加载
settings_file_02.cfg
MY_SQL_HOST = "127.0.0.1"
MY_SQL_PORT = 3306
# 将类中的属性名作为字典的key,属性值作为字典的value,添加到了Config类内部包含的字典中
app.config.from_pyfile("settings_file_02.cfg")
读取值:app.config.get()或者app.config["key"]
C: 直接操作app.config对象以字典的形式赋值即可
D.从环境变量中加载