zhangyangcheng

mannger.py的代码如下:

# coding=utf-8
from flask import Flask
from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
from flask_sqlalchemy import SQLAlchemy

app=Flask(__name__)

# 创建manager对象
manager=Manager(app)

# 创建数据库db
db=SQLAlchemy(app)

# 创建migtate对象
migrate=Migrate(app,db)


# 给manager添加db命令, 以后需要通过python manage.py db init/migrate/upgrade 进行数据库的迁移操
manager.add_command(\'db\',MigrateCommand)

if __name__ == \'__main__\':
    app.run()
View Code

 config.py的代码如下:

# coding=utf-8

import redis

\'\'\'
数据库的路径,redis的端口,session存放在redis中,调试模式,开发模式
\'\'\'

class Confing(object):

    # flask-sqlalchemy使用的参数
    SQLALCHEMY_DATABASE_URI="mysql://root:mysql@127.0.0.1/ihome"  # 数据库
    SQLALCHEMY_TRACK_MODIFICATIONS = True  # 追踪数据库的修改行为,如果不设置会报警告,不影响代码的执行

    
    #配置redis的数据
    REDIS_PORT=6379
    REDIS_HOST=\'127.0.0.1\'
    
    
    # 配置session存储到redis中
    PERMANENT_SESSION_LIFETIME = 86400  # 单位是秒, 设置session过期的时间
    SESSION_TYPE = \'redis\'  # 指定存储session的位置为redis
    SESSION_USE_SIGNER = True  # 对数据进行签名加密, 提高安全性
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # 设置redis的ip和端口


class DevelopmentConfig(Confing):
    DEBUG=True
    

class ProductionConfig(Confing):
    pass

# 参数字典, 用来方便的加载调试模式
config_dict = {
    \'development\' : DevelopmentConfig,
    \'production\' : ProductionConfig
}
View Code

 ihome/__init__.py的原始代码如下:

# coding=utf-8
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
from flask_session import Session
from flask_wtf.csrf import CSRFProtect
import redis


#创建应用
app=Flask(__name__)
# 创建数据库db
db=SQLAlchemy(app)
# 创建csrf
csrf=CSRFProtect(app)
# 创建redis
redis_store=redis.StrictRedis(port=6379,host=\'127.0.0.1\')
# 创建session
Session(app)
View Code

 ihome/__init__.py设计版  提供一个方法来创建一系列的。

# coding=utf-8
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
from flask_session import Session
from flask_wtf.csrf import CSRFProtect
import redis
from config import config_dict

# 定义数据库db
db=SQLAlchemy()
# 定义csrf
csrf=CSRFProtect()
# 定义redis_store对象, 先设置为None
redis_store=None


def create_app(config_name):
    # 创建应用
    app = Flask(__name__)
    
    # 从配置文件的字典中, 传入参数名字, 获取配置对象
    config = config_dict[config_name]
    app.config.from_object(config)
    
  
    # 创建数据库
    db.init_app(app)
    # 创建csrf
    csrf.init_app(app)
    # 创建redis
    global redis_store
    redis_store=redis.StrictRedis(port=config.REDIS_PORT,host=config.REDIS_HOST)
    # 创建Session
    Session(app)
View Code

manager.py要更改为create_app创建app

from ihome import create_app

# 通过create_app获取app
app = create_app(\'development\')

# coding=utf-8
from flask import Flask
from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
from flask_sqlalchemy import SQLAlchemy
from ihome import create_app


# 通过create_app获取app
app = create_app(\'development\')

# 创建manager对象
manager=Manager(app)

# 创建数据库db
db=SQLAlchemy(app)

# 创建migtate对象
migrate=Migrate(app,db)


# 给manager添加db命令, 以后需要通过python manage.py db init/migrate/upgrade 进行数据库的迁移操
manager.add_command(\'db\',MigrateCommand)

if __name__ == \'__main__\':
    app.run()
View Code

 

分类:

技术点:

相关文章: