Flask
django是大而全 ,提供所有常用的功能
flask是小而精 ,只提供核心功能
环境配置
为了防止 django和 flask环境相互冲突,可以使用 虚拟环境分割开
pip install virtualenv virtualenvwrapper-win # 安装虚拟环境基本的依赖包
mkvirtualenv flask # 创建一个叫 flask的虚拟环境
deactivate # 退出当前虚拟环境
rmvirtualenv flask # 删除名叫 flask的虚拟环境
workon flask # 进入虚拟环境flask
pip install -r requirements.txt # 在虚拟环境中安装flask必备的包
基本流程
配置项可以参考 官方 文档
-
创建
flask
APP -
定义视图函数
-
对视图函数配置路由
-
使用装饰器,配置路由
-
调用app的方法
add_url_rule
对视图函数配置路由
-
-
运行APP
-
from flask import Flask
# __name__ 当前 文件的名字
# __file__ 当前 文件的路径
# 1. 创建flask的app
app = Flask(__name__)
# 2.1 创建视图函数 ,利用装饰器可以配置路由
@app.route('/')
def hello():
return "hello Flask"
# 2.2.1 创建视图函数
def two():
return 'two page'
# 2.2.2 利用app的方法对视图函数添加路由
app.add_url_rule('/two', view_func=two)
if __name__ == '__main__':
# 3. 运行APP
app.run()项目配置
配置文件
通过专门的配置文件,读取配置项,适用于配置项较多
settings.py
class Config(object):
DEBUG = True主模块
import os
from flask import Flask
from settings import Config
app = Flask(__name__)
# app.config.from_object('settings.Config')
app.config.from_object(Config)
@app.route('/')
def hello():
return "hello Flask"
if __name__ == '__main__':
app.run()工厂模式
如果在一个函数中 创建对象 ,那么就可以创建多个实例。
那么这样做有什么用呢?
-
用于测试 。可以针对不同的情况使用不同的配置来测试应用 。
-
用于多实例,如果你需要运行同一个应用的不同版本的话。当然你可以在服务器上 使用不同配置运行多个相同应用,但是如果使用应用工厂 ,那么你可以只使用一个 应用进程而得到多个应用实例,这样更容易操控。
app/settings.py
class Config(object):
# 配置项在flask文档中已经规定好
DEBUG = Trueapp/__init__.py
from flask import Flask
from .settings import Config
def create_app():
# 1. 创建app对象
app = Flask(__name__)
# 2. 导入配置类
app.config.from_object(Config)
# 3. 返回 flask对象
return app
主模块
main.py
# 1. 导入工厂函数
from app import create_app
# 2. 生成APP
app = create_app()
@app.route('/')
def hello():
return "hello Flask"
if __name__ == '__main__':
# 3. 启动flask服务
app.run(host='0.0.0.0', port=7000, debug=True) -