根据文章“Flask 蓝图中使用动态 URL 前缀”,我想使用这个 URL 前缀做为数据库表前缀,如何使用?
以下为类比,或者有其他的方式?
# -*- coding: utf-8 -*-
from application import db
class User(db.Model):
# prefix 为数据库表前缀
__tablename__ = prefix + '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)
1
gotounix 2016-08-11 11:45:14 +08:00
你这样做完全没有意义啊。数据库表名基本是不变的, Blueprint 做的 URL 可以变更,如果你改了 URL ,你还要手动去改表名,如果有关联表,那就更悲剧了。何必呢?
|
2
tumb8r 2016-08-11 13:34:03 +08:00
。。。。有谁会去随意改动数据库表名。。。
|
3
LiuXuFei OP |
4
gotounix 2016-08-11 14:42:08 +08:00
新建一个 constant.py ,把表名全部写到这里面,只能加不能改, views 和 models 都 import 这个文件取 prefix 。
|
5
LiuXuFei OP @gotounix
这样反而麻烦了,我现在根据这篇文章( https://segmentfault.com/a/1190000002480266 )。 目前只是不知道怎么把 g.user_url_slug 变量用到我上面代码的 prefix 中? |
8
gotounix 2016-08-11 15:25:54 +08:00 1
@LiuXuFei g 是当前请求的全局变量,不同的请求对应不同的全局变量,不同的用户的 user_url_slug 是不一样的。
你去看看 blueprint 的应用和 flask 的上下文吧。 |