博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模型分离(选做)
阅读量:4685 次
发布时间:2019-06-09

本文共 2149 字,大约阅读时间需要 7 分钟。

模型分离--让代码更方便管理

新建models.py,将模型定义全部放到这个独立的文件中。

新建exts.py,将db = SQLAlchemy()的定义放到这个独立的文件中。

models.py和主py文件,都从exts.py中导入db。

在主py文件中,对db进行始化,db.init_app(app)。

 models.py:

from datetime import datetimefrom werkzeug.security import generate_password_hash, check_password_hashfrom exts import dbclass User(db.Model):    __tablename__ = 'User'    id = db.Column(db.Integer, primary_key=True, autoincrement=True)    username = db.Column(db.String(20), nullable=False)    _password = db.Column(db.String(200), nullable=False)  # 内部使用    @property    def password(self):        return self._password    @password.setter    def password(self, row_password):        self._password = generate_password_hash(row_password)    def check_password(self, row_password):        result = check_password_hash(self._password, row_password)        return resultclass Question(db.Model):    __tablename__ = 'question'    id = db.Column(db.Integer,primary_key=True,autoincrement=True)    title = db.Column(db.String(100),nullable=False)    detail = db.Column(db.Text,nullable=False)    creatTime = db.Column(db.DateTime,default=datetime.now)    authorID = db.Column(db.Integer,db.ForeignKey('User.id'))    author = db.relationship('User',backref=db.backref('question'))class Comment(db.Model):    _tablename_='comment'    id = db.Column(db.Integer,primary_key=True,autoincrement=True)    author_id = db.Column(db.Integer,db.ForeignKey('User.id'))    question_id = db.Column(db.Integer,db.ForeignKey('question.id'))    detail = db.Column(db.Text,nullable=False)    creatTime = db.Column(db.DateTime,default=datetime.now)    question = db.relationship('Question',backref=db.backref('comments',order_by=creatTime.desc))    author = db.relationship('User',backref=db.backref('comments'))

exts.py:

from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()

主py:

from flask import Flask, render_template,request,redirect,url_for,sessionimport configfrom functools import wrapsfrom exts import dbfrom sqlalchemy import or_, and_from models import Question,User,Commentapp = Flask(__name__)app.config.from_object(config)db.init_app(app)

 

转载于:https://www.cnblogs.com/0055sun/p/8117047.html

你可能感兴趣的文章
模型分离(选做)
查看>>
LeetCode 242. Valid Anagram
查看>>
观察者模式------《Head First 设计模式》
查看>>
JSP表单提交乱码
查看>>
如何适应现代雇佣关系
查看>>
【BZOJ4592】[Shoi2015]脑洞治疗仪 线段树
查看>>
redis sentinel 读写分离
查看>>
团队项目(第五周)
查看>>
ElasticSearch6(三)-- Java API实现简单的增删改查
查看>>
选拔赛 I 点进来吧,这里有你想要的
查看>>
SQL 优化经验总结34条
查看>>
开源 视频会议 收藏
查看>>
核心J2EE模式 - 截取过滤器
查看>>
test1
查看>>
.net开源CMS
查看>>
你懂AI吗(1)
查看>>
双拼输入法
查看>>
CentOS7 中防火墙配置
查看>>
php扩展目录
查看>>
PageRank算法
查看>>