多子站不同数据表前缀问题

2016-08-08 15:16:23 +08:00
 LiuXuFei

前文:用 flask 如何做配置不同的子站比较优雅?( http://www.v2ex.com/t/296370

问题:如何才能把 bluepront.py 文件中的 g.user_url_slug 变量放到 models.py 文件中使用?

bluepront.py

from flask import Blueprint, render_template, g
from app import models

site = Blueprint('site', __name__, url_prefix='/<user_url_slug>')

@site.url_defaults
def add_user_url_slug(endpoint, values):
    values.setdefault('user_url_slug', g.user_url_slug)

@site.url_value_preprocessor
def pull_user_url_slug(endpoint, values):
    g.user_url_slug = values.pop('user_url_slug')

@site.route('/')
def index():
    return g.user_url_slug + ' home'

models.py

from flask import g
from app import db

class User(db.Model):
    # 如何才能把 blueprint.py 中的 g.user_url_slug 放到这里,生成不同的子站数据库表前缀
    __tablename__ = g.user_url_slug + '_users' 
    
    id = db.Column(db.Integer, primary_key = True)
    nickname = db.Column(db.String(64), index = True, unique = True)
    email = db.Column(db.String(120), index = True, unique = True)

    def __repr__(self):
        return '<User %r>' % (self.nickname)
1977 次点击
所在节点    Python
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/297890

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX