Flaskプロジェクト基本構成
5556 ワード
プロジェクト基本構成
Configクラスは、まず現在のクラスで構成するクラスを定義し、そこから構成 をロードする.
テストの実行
SQLAlchemyデータベース拡張をインポートし、構成に関連する構成 を記入します.は、端末においてデータベース を作成する.
テストの実行
Redis redisストレージオブジェクトを作成し、構成に関連する構成 を記入する.
テストの実行
CSRF要求体を含む要求はすべてCSRF を開く必要がある.
CSRFProtectは検証のみを行い、cookieのcsrf_tokenとフォームのcsrf_tokenは自分たちで実現する必要がある
Session flask-session拡張を利用して、sessionデータをRedisに保存する
テストの実行
ドキュメントのアドレス:http://pythonhosted.org/Flask-Session/
Flask-Scriptとデータベース移行の拡張
テストの実行
Configクラス
app = Flask(__name__)
class Config(object):
""" """
DEBUG = True
app.config.from_object(Config)
テストの実行
SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
...
class Config(object):
""" """
DEBUG = True
#
SQLALCHEMY_DATABASE_URI = "mysql://root:[email protected]:3306/information"
SQLALCHEMY_TRACK_MODIFICATIONS = False
app.config.from_object(Config)
db = SQLAlchemy(app)
mysql> create database information charset utf8;
テストの実行
Redis
import redis
...
class Config(object):
""" """
...
# redis
REDIS_HOST = "127.0.0.1"
REDIS_PORT = 6379
app.config.from_object(Config)
db = SQLAlchemy(app)
redis_store = redis.StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_PORT)
テストの実行
CSRF
from flask_wtf.csrf import CSRFProtect
...
app.config.from_object(Config)
...
CSRFProtect(app)
CSRFProtectは検証のみを行い、cookieのcsrf_tokenとフォームのcsrf_tokenは自分たちで実現する必要がある
Session
from flask_session import Session
...
class Config(object):
""" """
SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"
...
# 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
PERMANENT_SESSION_LIFETIME = 86400 # session ,
app.config.from_object(Config)
...
Session(app)
テストの実行
ドキュメントのアドレス:http://pythonhosted.org/Flask-Session/
Flask-Scriptとデータベース移行の拡張
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
...
manager = Manager(app)
Migrate(app, db)
manager.add_command('db', MigrateCommand)
...
if __name__ == '__main__':
manager.run()
テストの実行