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

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

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

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

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

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

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

from flask import Flask,render_template,request,redirect,url_for,sessionimport configfrom functools import wrapsfrom sqlalchemy import or_,and_from database import Question,User,Commentfrom decorate import dbapp = Flask(__name__)app.config.from_object(config)db.init_app(app)# db.create_all()
from flask_sqlalchemy import SQLAlchemydb=SQLAlchemy()
from datetime import datetimefrom werkzeug.security import generate_password_hash,check_password_hashfrom decorate 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(20), nullable=True)    @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)    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)    creat_time = db.Column(db.DateTime, default=datetime.now)    question=db.relationship('Question',backref=db.backref('comments'))    author=db.relationship('User',backref=db.backref('comments'))

 

 

运行成功

 

转载于:https://www.cnblogs.com/1996liuda/p/8117262.html

你可能感兴趣的文章
java源码分析 arraylist 增长机制
查看>>
PLSQL Developer使用技巧
查看>>
oracle库文件建立完整数据库的过程介绍
查看>>
使用系统相机拍照摄像
查看>>
万能字段使用技巧整理
查看>>
session使用
查看>>
Perl正则表达式
查看>>
我的友情链接
查看>>
java代码导入excel数据至oracle(poi方式)
查看>>
工作中常用的英文单词缩写
查看>>
我的友情链接
查看>>
获取颜色值转换为十六进制
查看>>
IP相关知识复习
查看>>
行业大佬集体唱衰教育O2O,强管控的B2C模式将是唯一出路
查看>>
Ubuntu的JSP服务器安装
查看>>
Centos 6.4 下设置静态IP,指定NAMESERVER(DNS),修改网卡MAC地址
查看>>
阿里工程师开发了一款免费工具,提升Kubernetes应用开发效率
查看>>
cisco防火墙ASA5505配置
查看>>
MySQL 表栏位类型选择
查看>>
官网下载Google Chrome离线安装包
查看>>