13. 同F(xiàn)lask的集成

13. 同F(xiàn)lask的集成

從Pony 0.7.4版本開始,我們增加了對Flask的支持,
通過pony.flask.Pony,你可以使用恰當(dāng)?shù)姆绞阶詣臃庋b你的Flask應(yīng)用程序請求

from flask import Flask
from pony.flask import Pony

app = Flask(__name__)
Pony(app)

通過這段代碼,你的每個視圖函數(shù)都會被 db_session封裝,所以你不需要再關(guān)心它們。

Flask-Login

您也可以輕松地使用Flask-Login擴(kuò)展:

from flask import Flask, render_template
from flask_login import LoginManager, UserMixin, login_required
from pony.flask import Pony
from pony.orm import Database, Required, Optional
from datetime import datetime

app = Flask(__name__)
app.config.update(dict(
    DEBUG = False,
    SECRET_KEY = 'secret_xxx',
    PONY = {
        'provider': 'sqlite',
        'filename': 'db.db3',
        'create_db': True
    }
))

db = Database()

class User(db.Entity, UserMixin):
    login = Required(str, unique=True)
    password = Required(str)
    last_login = Optional(datetime)

db.bind(**app.config['PONY'])
db.generate_mapping(create_tables=True)

Pony(app)
login_manager = LoginManager(app)
login_manager.login_view = 'login'

@login_manager.user_loader
def load_user(user_id):
    return db.User.get(id=user_id)

你可以使用LoginManager.current_user作為用戶實例。

@app.route('/friends')
@login_required
def friends():
    return render_template('friends.html', friends=current_user.friends)

你可以運行另一個例子來檢查

python -m pony.flask.examplease
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容