创建项目
GitHub中create a new repository----flask_new_info
克隆到本地,在pycharm中打开
配置虚拟环境

项目下创建manage.py,添加如下代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'index'
if __name__ == '__main__':
app.run()
点击运行,进入页面,如果页面中有index,就配置成功
session存储
安装Redishttps://www.jianshu.com/p/9307d4c16791
创建Redis数据库
点击connect to redis server,后输入名和host


manage.py
import redis
from flask import Flask, session
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import CSRFProtect
from flask_session import Session
class Config(object):
"""工程配置信息"""
SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"
DEBUG = True
# 数据库的配置信息
SQLALCHEMY_DATABASE_URI = "mysql://root:root@127.0.0.1:3306/information14"
SQLALCHEMY_TRACK_MODIFICATIONS = False
REDIS_HOST = "127.0.0.1"
REDIS_PORT = 6379
# flask_session的配置信息
SESSION_TYPE = "redis" # 指定 session 保存到 redis 中
SESSION_USE_SIGNER = True # 让 cookie 中的 session_id 被加密签名处理
SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT) # 使用 redis 的实例
SESSION_PERMANENT = False
PERMANENT_SESSION_LIFETIME = 86400 # session 的有效期,单位是秒
app = Flask(__name__)
app.config.from_object(Config)
# 初始化数据库
db = SQLAlchemy(app)
# 初始化redis 对象
redis_store = redis.StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_PORT)
# 开启csrf保护,只做服务器验证功能,
CSRFProtect(app)
# 设置session保存指定位置
Session(app)
@app.route('/')
def index():
session['name'] = 'ssq'
return 'index'
if __name__ == '__main__':
app.run()
在Navicat中创建对应的数据库


运行后进入页面没错误,Redis数据库会有数据
migrate
在manage.py中添加:
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
# flask_script
manager = Manager(app)
# 数据库迁移
Migrate(app, db)
manager.add_command('db', MigrateCommand)
并将app.run()改成manager.run()

点击edit config...,按照下图操作


项目拆分
各司其职,方便后期维护
- manage.py 只负责基本的启动工作
- app 的创建在 info 下的__ init __ 中
- 创建config.py,将Config全部剪切其中,并将app.config全部去掉
import redis
class Config(object):
"""工程信息配置"""
SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"
DEBUG = True
# 导入数据库配置
# 设置数据库连接
SQLALCHEMY_DATABASE_URI= 'mysql://root:root@127.0.0.1:3306/information22'
# 动态追踪设置
SQLALCHEMY_TRACK_MODUFICATIONS = True
# 显示原始sql
SQLALCHEMY_ECHO = True
REDIS_HOST = "127.0.0.1"
REDIS_POST = 6379
# flask_session配置信息
SESSION_TYPE = 'redis' #指定session保存到Redis中
SESSION_USE_SIGNER = True #让cookie中的sessionid 被加密处理
# 使用Redis实例
SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_POST)
SESSION_PERMANENT = False
PERMANENT_SESSION_LIFETIME = 86400 #session有效期 秒
- 创建info包,里面会有__ init __ .py,app的创建部分全部剪切其中
from flask import Flask
from flask_session import Session
from flask_sqlalchemy import SQLAlchemy
import redis
from flask_wtf import CSRFProtect
from config import Config
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
# 初始化Redis配置
redis.StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_POST)
# 开启csrf保护,只用于服务器验证功能
CSRFProtect(app)
# 设置session保存指定位置
Session(app)
- 最后manage.py只负责基本的启动工作
from flask import session
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import app, db
# flask_script
manager = Manager(app)
# 数据库迁移
Migrate(app, db)
manager.add_command('db', MigrateCommand)
@app.route('/')
def index():
session['name'] = 'ssq'
return 'index'
if __name__ == '__main__':
manager.run()
