flask搭建及部署
pip 19.2.3
python 3.7.5
Flask 1.1.1
Flask-SQLAlchemy 2.4.1
Pika 1.1.0
Redis 3.3.11
flask-wtf 0.14.2
1、创建flask项目:

创建完成后整个项目结构树:

app.py: 项⽬管理⽂件,通过它管理项⽬。
static: 存放静态文件
templates文件夹:用于放置html模板文件
由于flask属于轻量级web框架, 更加自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库 。所以这个框架的代码架构需要自己设计。
2、创建项目主要逻辑代码保存目录

手动创建application目录、filter目录及其子目录
application : 项目主要逻辑代码保存目录
_init_.py : 创建flask应用并加载配置,如mysql,redis,rabbitmq,
apps : 专门用于保存每一个项目的蓝图
app1 : app1蓝图目录,在app1下的init_.py中文件中创建蓝图对象,view.py中新增对应的视图文件,在 model.py中写模型代码
settings : 项目配置存储目录
dev.py : 项目开发阶段配置文件
prop.py : 项目生成阶段配置文件
static : 项目静态文件夹(用于存放css一类的文件)
templates : 用于放置html模板文件
filter : 整个项目拦截器目录
requestFilter.py: 针对整个app项目全局路由拦截规则定义
app.py : 项⽬管理⽂件,通过它启动整个项目
2.1 配置mysql数据库,加载配置文件并针对整个app项目定义全局db
2.1.1 settings.py
#全局通用配置类
class Config(object):
"""项目配置核心类"""
#调试模式
DEBUG=False
# 配置日志
# LOG_LEVEL = "DEBUG"
LOG_LEVEL = "INFO"
# 配置redis
# 项目上线以后,这个地址就会被替换成真实IP地址,mysql也是
REDIS_HOST = 'your host'
REDIS_PORT = your port
REDIS_PASSWORD = 'your password'
REDIS_POLL = 10
#数据库连接格式
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://user:password@localhost:3306/test?charset=utf8"
# 动态追踪修改设置,如未设置只会提示警告
SQLALCHEMY_TRACK_MODIFICATIONS = False
# 查询时会显示原始SQL语句
SQLALCHEMY_ECHO = False
# 数据库连接池的大小
SQLALCHEMY_POOL_SIZE=10
#指定数据库连接池的超时时间
SQLALCHEMY_POOL_TIMEOUT=10
# 控制在连接池达到最大值后可以创建的连接数。当这些额外的 连接回收到连接池后将会被断开和抛弃。
SQLALCHEMY_MAX_OVERFLOW=2
#rabbitmq参数配置
RABBITUSER="user"
RABBITPASSWORD="password"
RABBITHOST="your ip"
RABBITPORT=your port
2.1.2 dev.py
from . import Config
class DevelopmentConfig(Config):
'开发模式下的配置'
# 查询时会显示原始SQL语句
SQLALCHEMY_ECHO = True
2.1.3 prop.py
from . import Config
class ProductionConfig(Config):
"""生产模式下的配置"""
DEBUG = False
2.1.4 加载配置文件,定义全局的db( SQLALchemy类的实例 )供项目使用
# 主应用的根目录
app = Flask(__name__)
config = {
'dev': DevelopmentConfig,
'prop': ProductionConfig,
}
# 设置配置类
Config = config['dev']
# 加载配置
app.config.from_object(Config)
# 创建数据库连接对象
db = SQLAlchemy(app)
dev : 测试环境配置
prop: 生产环境配置
Flask应用app配置加载
通常三种方式
从配置对象中加载:app.config.from_object()
从配置文件中加载:app.config.from_pyfile()-ini文件
从环境变量中加载:app.config.from_envvar()
配置对象
从配置对象中加载,创建配置的类:
# 配置对象,里面定义需要给 APP 添加的一系列配置
class Config(object):
DEBUG = True
app = Flask(__name__)
# 从配置对象中加载配置
app.config.from_object(Config)
app.run()
配置文件
从配置文件中加载,在目录中定义一个配置文件config.ini
app = Flask(__name__)
# 从配置对象中加载配置
app.config.from_pyfile("config.ini")
app.run()
环境变量
app = Flask(__name__)
# 从环境变量中加载
app.config.from_envvar("FLASKCONFIG")
app.run()
2.2 定义model模型,负责和数据库交互
app1.model
from application import db
class Wdtest(db.Model):
__tablename__ = "wdtest" #设置表名
id = db.Column(db.String(100), primary_key=True, comment="主键ID")
name = db.Column(db.String(20), index=True, comment="姓名" )
age = db.Column(db.Integer, default=True, comment="年龄")
模型 表示程序使用的持久化实体. 在Flask-SQLALchemy 中, 模型一般是一个 Python 类, 类中的属性对应数据

最低0.47元/天 解锁文章
5743

被折叠的 条评论
为什么被折叠?



