框架搭建"/>
flsk项目框架搭建
1.新建文件夹
2.文件夹中配置ihome包、config.py文件、manage.py文件、logs日志文件夹、demo.py日志文件
3.ihome包中配置api_1_0包、utils文件夹、models.py文件
2.1 config.py配置文件写入
import redis
import loggingclass Config(object):"""工程配置信息"""SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"DEBUG = True# 数据库的配置信息SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123@127.0.0.1:3306/ihome2"SQLALCHEMY_TRACK_MODIFICATIONS = True# redis配置REDIS_HOST = "127.0.0.1"REDIS_PORT = 6379# session 配置SESSION_TYPE = "redis" # 指定 session 保存到 redis 中SESSION_USE_SIGNER = True # 让 cookie 中的 session_id 被加密签名处理SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT) # 使用 redis 的实例PERMANENT_SESSION_LIFETIME = 86400 # session 的有效期,单位是秒LOG_LEVEL = logging.DEBUGclass DevelopementConfig(Config):"""开发模式下的配置"""DEBUG = TrueLOG_LEVEL = logging.INFO# 容联云配置项ACC_ID = '8a216da881ad975401821a40f1891a59'ACC_TOKEN = 'a707bc4********bc80'APP_ID = 'a707bc46fff4472896f7f283b75bbc80'class ProductionConfig(Config):"""生产模式下的配置"""DEBUG = FalseLOG_LEVEL = logging.ERROR# 定义配置字典字典
config = {"development": DevelopementConfig,"production": ProductionConfig
}
2.2、manage.py中配置
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from iHome import create_app, dbapp = create_app('development')# 1. 创建运行的 管理器对象
manager = Manager(app)# 2. 设置 app 和 数据库 迁移
Migrate(app, db)# 3. 设置 终端 迁移的指令
manager.add_command('db', MigrateCommand)if __name__ == '__main__':manager.run()
2.3、demo.py文件写入日志
import logging
from logging.handlers import RotatingFileHandlerlogging.basicConfig(level=logging.DEBUG) # 调试debug级
# 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限
file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024*1024*100, backupCount=10)
# 创建日志记录的格式 日志等级 输入日志信息的文件名 行数 日志信息
formatter = logging.Formatter('%(levelname)s-%(asctime)s-%(filename)s:%(lineno)d %(message)s')
# 为刚创建的日志记录器设置日志记录格式
file_log_handler.setFormatter(formatter)
# 为全局的日志工具对象(flask app使用的)添加日志记录器
logger = logging.getLogger()
logger.addHandler(file_log_handler)if __name__ == '__main__':for i in range(2000):logger.debug('测试 自定义的日志格式')
3.1、_init_.py文件写入
import redis
from flask import Flask
from flask_session import Session
from flask_cors import CORSfrom flask_sqlalchemy import SQLAlchemy
from flask_wtf import CSRFProtectfrom config import config# Mysql数据库的实例化
db = SQLAlchemy()# CSRF 防护
csrf=CSRFProtect()redis_store = Nonedef setup_logging(config_class):import loggingfrom logging.handlers import RotatingFileHandlerlogging.basicConfig(level=config_class.LOG_LEVEL) # 调试debug级# 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024 * 1024 * 100, backupCount=10)# 创建日志记录的格式 日志等级 输入日志信息的文件名 行数 日志信息formatter = logging.Formatter('%(levelname)s-%(asctime)s-%(filename)s:%(lineno)d %(message)s')# 为刚创建的日志记录器设置日志记录格式file_log_handler.setFormatter(formatter)# 为全局的日志工具对象(flask app使用的)添加日志记录器logger = logging.getLogger()logger.addHandler(file_log_handler)def create_app(config_name):"""封装 实例化的 app 对象:return:"""# 实例化 app 应用- 动态导包的快捷键 option+enterapp = Flask(__name__)# 读取配置的类config_class = config[config_name]# 根据配置类 读取对应环境的配置app.config.from_object(config_class)# Mysql数据库的实例化db.init_app(app)# Redis 实例化global redis_storeredis_store = redis.StrictRedis(host=config_class.REDIS_HOST,port=config_class.REDIS_PORT)# CSRF 防护# csrf.init_app(app)# SessionSession(app)# 跨域# CORS(app)# 注册 蓝图from iHome import api_1_0app.register_blueprint(api_1_0.api, url_prefix="/api/v1.0")return app
3.2、constants.py配置
# -*- coding:utf-8 -*-# 图片验证码Redis有效期, 单位:秒
IMAGE_CODE_REDIS_EXPIRES = 300# 短信验证码Redis有效期,单位:秒
SMS_CODE_REDIS_EXPIRES = 300# 七牛空间域名
QINIU_DOMIN_PREFIX = "/"
QINIU_AK = 'xfhKQ7*************RBkk2g'
QINIU_SK = 'ATQjn6ws58************0GYq5Q9HD9'# 城区信息redis缓存时间,单位:秒
AREA_INFO_REDIS_EXPIRES = 7200# 首页展示最多的房屋数量
HOME_PAGE_MAX_HOUSES = 5# 首页房屋数据的Redis缓存时间,单位:秒
HOME_PAGE_DATA_REDIS_EXPIRES = 7200# 房屋详情页展示的评论最大数
HOUSE_DETAIL_COMMENT_DISPLAY_COUNTS = 30# 房屋详情页面数据Redis缓存时间,单位:秒
HOUSE_DETAIL_REDIS_EXPIRE_SECOND = 7200# 房屋列表页面每页显示条目数
HOUSE_LIST_PAGE_CAPACITY = 2# 房屋列表页面Redis缓存时间,单位:秒
HOUSE_LIST_REDIS_EXPIRES = 7200
3.3、model.py配置模型类
from . import dbclass BaseModel(object):"""模型基类,为每个模型补充创建时间与更新时间"""create_time = db.Column(db.DateTime, default=datetime.now) # 记录的创建时间update_time = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now) # 记录的更新时间
4.1、api_1_0中的_init_.py文件写入
from flask import Blueprint
from flask_cors import CORSapi = Blueprint('api_1_0', __name__)
CORS(api)
from . import index,verifycode,passport,profile
更多推荐
flsk项目框架搭建
发布评论