酒店网站建设背景分析,保定高端网站建设,网站诊断与检测,做网站后端需要掌握什么技术我们在做页面的时候#xff0c; 一般都要和数据相适应#xff0c;这个时候就需要去修改数据库#xff0c; 至少需要数据库相关的人员配合#xff0c; 改来改去的容易产生一些版本遗留问题。
就算是我一个人开发#xff0c; 一会儿搞前端#xff0c;一会儿搞后台#xf…我们在做页面的时候 一般都要和数据相适应这个时候就需要去修改数据库 至少需要数据库相关的人员配合 改来改去的容易产生一些版本遗留问题。
就算是我一个人开发 一会儿搞前端一会儿搞后台 也是感觉麻烦容易出错。
所以打算搞一个接口生成的工具 有的时候查询表格就直接代码生成出来 如果有逻辑就将逻辑独立出来然后代码生成的时候融入进去 这样修改起来也就更简单一些。
这个模块是表格生成部分的示例代码 项目还在开发 可能有些地方还是太理想化了 会出现一些难以解决的问题而将项目终止掉 但是不努力尝试怎么会知道会不会成功呢 给自己加油1711065015。
class gen_table:# 记录一些表格基本数据ctab str_c {}# 创建一张新表def create_table(self, tn):return (fclass {tn[0].upper()}{tn[1:]}(db.Model):\nf{self.ctab} __tablename__ {tn}\nf{self.ctab}__id_ db.Column(db.Integer, auto_increadTrue, primary_keyTrue)\n)# 表格生成def gen(self, se):ts se.split(.)for i in range(len(ts)-1): #[:-1]:t ts[i].strip()tb ts[i-1].strip() if i 0 else None if t[0] ( and t[-1] ):et t[1:-1].split(,)for e in et:if e in self.str_c:continueself.str_c[e] {content:self.create_table(e.strip()),items:[],bcontent:,bitems:[]}elif t not in self.str_c:# if t in self.str_c:continueself.str_c[t] {content:self.create_table(t),items:[],bcontent:,bitems:[]}if tb is None:continueet tb[1:-1].split(,) if tb[0] ( and tb[-1] ):if et is None: continue for e in et:e e.strip()if f__{e}_id_ in self.str_c[t][items]: continueself.str_c[t][content] f{self.ctab}__{e}_id_ db.Column(db.Integer, db.ForeignKey({e}.id), nullableFalse)\nself.str_c[t][items].append(f__{e}_id_)else:if f__{tb}_id_ in self.str_c[t][items]: continue# print(t)self.str_c[t][content] f{self.ctab}__{tb}_id_ db.Column(db.Integer, db.ForeignKey({tb}.id), nullableFalse)\nself.str_c[t][items].append(f__{tb}_id_)if ts[-2] not in self.str_c: returnif ts[-2] not in self.str_c[ts[-2]][bitems]:self.str_c[ts[-2]][bcontent] f{self.ctab}_{ts[-1]} db.Column(db.String)\nself.str_c[ts[-2]][bitems].append(ts[-2])
# 测试
bstr [x.c,x.b.c,(x,y).b.c]
gt gen_table()
for b in bstr:gt.gen(b)
# 打印
for e in gt.str_c:print(gt.str_c[e][content],end) print(gt.str_c[e][bcontent]) # 执行输出class X(db.Model):__tablename__ x__id_ db.Column(db.Integer, auto_increadTrue, primary_keyTrue)_c db.Column(db.String)class B(db.Model):__tablename__ b__id_ db.Column(db.Integer, auto_increadTrue, primary_keyTrue)__x_id_ db.Column(db.Integer, db.ForeignKey(x.id), nullableFalse)__y_id_ db.Column(db.Integer, db.ForeignKey(y.id), nullableFalse)_c db.Column(db.String)class Y(db.Model):__tablename__ y__id_ db.Column(db.Integer, auto_increadTrue, primary_keyTrue)代码里面还没有添加表格元素类型的定义 后面再优化 期待大家评论区讨论和代码完成的时候能够和大家一起测试。