創(chuàng)建項目
GitHub中create a new repository----flask_new_info
克隆到本地,在pycharm中打開
配置虛擬環(huán)境

項目下創(chuàng)建manage.py,添加如下代碼:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'index'
if __name__ == '__main__':
app.run()
點擊運行,進(jìn)入頁面,如果頁面中有index,就配置成功
session存儲
安裝Redishttp://www.itdecent.cn/p/9307d4c16791
創(chuàng)建Redis數(shù)據(jù)庫
點擊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
# 數(shù)據(jù)庫的配置信息
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)
# 初始化數(shù)據(jù)庫
db = SQLAlchemy(app)
# 初始化redis 對象
redis_store = redis.StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_PORT)
# 開啟csrf保護(hù),只做服務(wù)器驗證功能,
CSRFProtect(app)
# 設(shè)置session保存指定位置
Session(app)
@app.route('/')
def index():
session['name'] = 'ssq'
return 'index'
if __name__ == '__main__':
app.run()
在Navicat中創(chuàng)建對應(yīng)的數(shù)據(jù)庫


運行后進(jìn)入頁面沒錯誤,Redis數(shù)據(jù)庫會有數(shù)據(jù)
migrate
在manage.py中添加:
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
# flask_script
manager = Manager(app)
# 數(shù)據(jù)庫遷移
Migrate(app, db)
manager.add_command('db', MigrateCommand)
并將app.run()改成manager.run()

點擊edit config...,按照下圖操作


項目拆分
各司其職,方便后期維護(hù)
- manage.py 只負(fù)責(zé)基本的啟動工作
- app 的創(chuàng)建在 info 下的__ init __ 中
- 創(chuàng)建config.py,將Config全部剪切其中,并將app.config全部去掉
import redis
class Config(object):
"""工程信息配置"""
SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"
DEBUG = True
# 導(dǎo)入數(shù)據(jù)庫配置
# 設(shè)置數(shù)據(jù)庫連接
SQLALCHEMY_DATABASE_URI= 'mysql://root:root@127.0.0.1:3306/information22'
# 動態(tài)追蹤設(shè)置
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有效期 秒
- 創(chuàng)建info包,里面會有__ init __ .py,app的創(chuàng)建部分全部剪切其中
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保護(hù),只用于服務(wù)器驗證功能
CSRFProtect(app)
# 設(shè)置session保存指定位置
Session(app)
- 最后manage.py只負(fù)責(zé)基本的啟動工作
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)
# 數(shù)據(jù)庫遷移
Migrate(app, db)
manager.add_command('db', MigrateCommand)
@app.route('/')
def index():
session['name'] = 'ssq'
return 'index'
if __name__ == '__main__':
manager.run()
