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

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

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

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

from werkzeug.security import generate_password_hash,check_password_hashfrom datetime import datetimefrom 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)    nickname = db.Column(db.String(50), nullable=True)@propertydef password(self):     return self._password @password.setterdef 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)    creat_time = db.Column(db.DateTime, default=datetime.now)    author_id = db.Column(db.Integer, db.ForeignKey('user.id'))    author = db.relationship('User', backref=db.backref('question'))class Comment(db.Model):    __tablename__ = 'commment'    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)    time = db.Column(db.DateTime, default=datetime.now)    question=db.relationship('Question',backref=db.backref('comments'))    author=db.relationship('User',backref=db.backref('comments'))

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

from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()

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

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

from flask import Flask,render_template,request,redirect,url_for,sessionfrom flask_sqlalchemy import SQLAlchemyimport configfrom functools import wrapsfrom sqlalchemy import or_, and_from models import Question,User,Commentfrom exts import dbapp = Flask(__name__)app.config.from_object(config)db.init_app(app)

 

转载于:https://www.cnblogs.com/gdlyzx/p/8119619.html

你可能感兴趣的文章
避免基本类型数组转换列表陷阱(Arrays.asList())
查看>>
Linux 与 BSD 有什么不同?
查看>>
Xcode工程文件的格式说明[翻译]
查看>>
强制删除一个容器
查看>>
[JS]Drag And Drop
查看>>
12. Integer to Roman
查看>>
什么是node.js的事件驱动编程
查看>>
ThreadPoolExecutor 创建Worker Thread的策略
查看>>
开发者最容易犯的13个JavaScript错误--看懂他,并自查代码看看有没有错误
查看>>
CSS规范
查看>>
Vue.js学习笔记五
查看>>
IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除
查看>>
【转】JSON格式简介及一些对应函数
查看>>
npm publish报错
查看>>
SWT之制作桌面程序主窗口(一)
查看>>
推荐一款代码神器,代码量至少省一半!
查看>>
浅谈AngularJS--域变量(scope)
查看>>
Java基础——数组例题&二维数组
查看>>
jquery-datatables
查看>>
Java集合<8> (Map)
查看>>