1. Flask框架的介绍
1.1为什么要使用Flask
因为Flask是轻量级框架,拥有丰富的拓展,可以给应用增加相应的功能。在web框架中是比较流行的
2. Flask 项目环境的搭建
2.1创建虚拟环境
创建虚拟环境是为了让之后安装Flask及其需要用到的库不跟其他的库混淆。
2.1.1配置虚拟环境
File --> settings --> project 项目名 --> project interpreter 
 


当在目录里有venv的文件夹和运行的终端路径前出现(venv)

2.1.2 如果没有出现venv,那就激活一下
看看venv文件中,是否有一下文件  没有的话就重建项目按照以上步骤重新进行 有的话,就开始激活 第一步:先进入venv的scripts下
cd venv/scripts
 进入后,输入activate,之后就是下边这样。 然后再退到项目的根目录
cd ../..
 如果还不可以,就输入deactivate退出一下,再重新激活
2.2 安装Flask及相关库
将需要用到的库和版本号全部写入一个文本文档,把这个文本文档拖进PyCharm,在终端执行
pip install -r 文件名
出现successfully就是安装成功 
3.初步演示Flask
from flask import Flask
app = Flask(__name__)
@app.route("/hello")
def hello():
return "hello"
if __name__ == '__main__':
app.run()
4. Flask配置
4.1 从配置对象中加载
在项目根目录创建一个settings的文件夹,在文件夹下创建config文件,在文件下写
class DefaultConfig:
NAME = "zhangsan"
DEBUG = True
在项目根目录下创建hello2.py文件
from flask import Flask
from settings.config import DefaultConfig
app = Flask(__name__)
app.config.from_object(DefaultConfig)
print(app.config)
@app.route("/hello")
def hello():
return "hello"
if __name__ == '__main__':
app.run()
4.2 从配置文件中加载
在项目根目录创建一个setting.py的文件,在文件下写
AGE = 18
在hello2.py文件中写
from flask import Flask
app = Flask(__name__)
app.config.from_pyfile("setting.py")
print(app.config)
@app.route("/hello")
def hello():
return "hello"
if __name__ == '__main__':
app.run()
4.3 从环境变量中加载配置
在一个文件下创建一个配置文件,把文件路径复制下来  在pycharm中增加变量路径   在hello2.py文件里写
from flask import Flask
app = Flask(__name__)
app.config.from_envvar("password")
print(app.config)
@app.route("/hello")
def hello():
return "hello"
if __name__ == '__main__':
app.run()
4.4 三者之间的区别
- 从对象加载配置: 配置方式灵活, 可复用性强, 但不安全,没有敏感信息时使用
- 从文件加载配置: 复用性不好, 也不安全, 但是官方推荐用法
- 从环境变量加载: 相对安全, 利于配置敏感信息, 推荐使用
5.工厂模式
工厂模式:提供一个“工程”,让其创建一个对象,客户端用某些参数进行调用,之后返回结果。 工厂模式简单实例:
class Animal():
def do_say(self):
pass
class Cat(Animal):
def do_say(self):
print("miao,miao")
class Dog(Animal):
def do_say(self):
print("wang,wang")
class Forest():
def say(self,animal_type):
eval(animal_type)().do_say()
if __name__ == '__main__':
a = input("请输入动物的类型(Cat or Dog):")
print("接受到的数据为:",a)
Forest().say(a)
6.APP封装
将执行的语句和需要创建的语句分离开,在执行的文件里进行导入,调用 示例: 在根目录下创建一个create_app.py文件,在文件里写创建的语句
from flask import Flask
def create_app():
flask_app = Flask(__name__)
print("我被调用了")
return flask_app
在app.py文件里写要执行的语句
from create_app import create_app
app = create_app()
print(app)
if __name__ == '__main__':
app.run()
7.Flask路由
使用装饰器来配置路由,参数分别是 url 路径 method 访问方法 endpoint 路由别名
from create_app import create_app
from flask import url_for
app = create_app()
print(app)
@app.route("/hello",methods=["get","post"],endpoint="aaa")
def hello():
return "hello"
@app.route("/path")
def get_path():
u = url_for("aaa")
print(u)
return u
if __name__ == '__main__':
app.run()
8. 启动Flask 项目
第一种:在项目下直接调用app.run()
if __name__ == "__main__":
app.run()
第二种:在项目终端输入flask run 项目名 第三种:创建Flaskapp运行对象     出现http://127.0.0.1:5000的字样就是成功
总结
1.Flask环境如何搭建
需要创建一个虚拟环境,在虚拟环境里安装Flask依赖
2. Flask有几种配置方式?区别是什么?
三种。分别是:从对象加载配置,从文件加载配置,从环境变量记载
- 从对象加载配置: 配置方式灵活, 可复用性强, 但不安全,没有敏感信息时使用
- 从文件加载配置: 复用性不好, 也不安全, 但是官方推荐用法
- 从环境变量加载: 相对安全, 利于配置敏感信息, 推荐使用
3.什么是设计模式?工厂模式是什么?
设计模式是一种思想,是解决特定问题的解决方案。 工程模式就是给创建类型对象和客户端调用方法提供一个工厂
4.如何封装APP?意义是什么?
在一个文件里定义一个函数,将APP封装到函数里。 调用方便,可简化代码
5. Flask路由定义的语法是什么?参数的含义都是 什么?
@app.route(url=“路径”,methods=[“请求方式”],enpoint=“路由别名”)
|