
根据文章“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 @LiuXuFei g 是当前请求的全局变量,不同的请求对应不同的全局变量,不同的用户的 user_url_slug 是不一样的。 你去看看 blueprint 的应用和 flask 的上下文吧。 |