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 logging

class 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.DEBUG

class DevelopementConfig(Config):
    """开发模式下的配置"""
    DEBUG = True
    LOG_LEVEL = logging.INFO
    
    # 容联云配置项
    ACC_ID = '8a216da881ad975401821a40f1891a59'
    ACC_TOKEN = 'a707bc4********bc80'
    APP_ID = 'a707bc46fff4472896f7f283b75bbc80'


class ProductionConfig(Config):
    """生产模式下的配置"""
    DEBUG = False
    LOG_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, db

app = 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 RotatingFileHandler

logging.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 CORS

from flask_sqlalchemy import SQLAlchemy
from flask_wtf import CSRFProtect

from config import config

# Mysql数据库的实例化
db = SQLAlchemy()

# CSRF 防护
csrf=CSRFProtect()

redis_store = None



def setup_logging(config_class):
    import logging
    from logging.handlers import RotatingFileHandler

    logging.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+enter
    app = Flask(__name__)

    # 读取配置的类
    config_class = config[config_name]

    # 根据配置类 读取对应环境的配置
    app.config.from_object(config_class)

    # Mysql数据库的实例化
    db.init_app(app)

    # Redis 实例化
    global redis_store
    redis_store = redis.StrictRedis(host=config_class.REDIS_HOST,port=config_class.REDIS_PORT)

    # CSRF 防护
    # csrf.init_app(app)

    # Session
    Session(app)

    # 跨域
    # CORS(app)

    # 注册 蓝图
    from iHome import api_1_0
    app.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 = "http://rq0182bau.hd-bkt.clouddn.com/"
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 db


class 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 CORS

api = Blueprint('api_1_0', __name__)
CORS(api)
from . import index,verifycode,passport,profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值