天天看點

flask項目--新聞類項目

1.Flask項目基本設定

資料庫配置-Flask-SQLAlchemy擴充使用。

from flask_sqlalchemy import SQLAlchemy

class Config(object):

“”“項目配置類”""

# 資料庫相關配置

# 使用的資料庫連結位址

SQLALCHEMY_DATABASE_URI = ‘mysql://:@:host:port/’

# 關閉追蹤資料庫的修改

SQLALCHEMY_TRACK_MODIFICATIONS = False

#建立SQLAlchemy對象

db = SQLAlchemy(app)

session存儲的設定-Flask-Session擴充的使用。

from flask_session import Session

# session存儲的相關配置

# 設定session存儲到redis中

SESSION_TYPE = ‘redis’

# redis連結對象(給flask-session擴充使用的)

SESSION_REDIS = redis.StrictRedis(host=, port=)

# 開啟傳回給浏覽器cookie <code>session</code>值的加密

SESSION_USE_SIGNER = True

# 設定session過期時間

PERMANENT_SESSION_LIFETIME = 2436002

#建立Session對象

Sesssion(app)

為Flask項目開啟CSRF保護-Flask-WTF擴充中CSRFProtect類的使用。

flask項目沒有CSRF(跨站請求僞造)保護,需要使用CSRFProtect來開啟。

from flask_wtf.csrf import CSRFProtect

#為flask項目開啟CSRF保護,預設針對<code>POST</code>|<code>PUT</code>|<code>DELETE</code>|<code>PATCH</code>四種請求方式有保護驗證。

CSRFProtect(app)

注: CSRFProtect隻幫助我們做CSRF驗證工作。

需要我們自己實作以下3步:

自己調用generate_csrf生成随機的csrf_token并儲存起來。

把csrf_token的内容告訴給用戶端。

csrf_token産生

在用戶端發起請求時,如果請求方式有csrf驗證,需要在表單資料或請求頭中攜帶csrf_token。csrf_token請求攜帶

flask項目--新聞類項目

指令行管理和資料庫遷移管理-Flask-Script擴充&amp;Flask-Migrate擴充使用。

from flask_script import Manager

from flask_migrate import Migrate, MigrateCommand

#建立Manager管理對象

manager = Manager(app)

#建立Migrate對象

Migrate(app, db)

添加資料庫遷移管理指令

manager.add_command(‘db’, MigrateCommand)

if name == ‘main’:

manager.run()

繼續閱讀