flsk项目框架搭建

编程入门 行业动态 更新时间:2024-10-10 11:28:14

flsk项目<a href=https://www.elefans.com/category/jswz/34/1770644.html style=框架搭建"/>

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项目框架搭建

本文发布于:2024-03-10 07:04:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1727304.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:框架   项目   flsk

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!