zoukankan      html  css  js  c++  java
  • python flask_Sqlalchemy管理数据库

    懒癌复发直接粘贴代码,算是做一个简单备份吧。

    #coding:utf8
    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    from datetime import datetime
    import pymysql
    
    app=Flask(__name__)
    #实例化
    
    app.config["SQLALCHEMY_DATABASE_URI"]="mysql+pymysql://root:toor@127.0.0.1:3307/movie"
    app.config["SQLALCHEMY_TRACK_MODIFICATION"]=True
    
    db=SQLAlchemy(app)
    
    #会员
    
    
    class User(db.Model):
        __tablename__="user"
        id=db.Column(db.Integer, primary_key=True)
        name=db.Column(db.String(100),unique=True)
        pwd=db.Column(db.String(100))
        email=db.Column(db.String(100),unique=True)
        phone=db.Column(db.String(11),unique=True)
        info=db.Column(db.Text)
        face=db.Column(db.String(255))
        addtime=db.Column(db.DateTime,index=True,default=datetime.now)
        uuid= db.Column(db.String(255),unique=True)
        userlogs = db.relationship('Userlog', backref='user')
        comments = db.relationship('Comment', backref='user')
        moviecols = db.relationship('Moviecol', backref='user')
    
        def __repr__(self):
            return "<User %r>"  %self.name
    
    #会员登录日志
    
    class Userlog(db.Model):
        __tablename__="userlog"
        id=db.Column(db.Integer,primary_key=True)
        user_id=db.Column(db.Integer,db.ForeignKey('user.id'))
        ip=db.Column(db.String(100))
        #登录ip.
        addtime=db.Column(db.DateTime,index=True,default=datetime.now)
    
        def __repr__(self):
            return "<Userlog %r>" % self.id
    
    
    
    #标签
    class Tag(db.Model):
        __tablename__="tag"
        id=db.Column(db.Integer,primary_key=True)
        name=db.Column(db.String(100),unique=True)
        addtime=db.Column(db.DateTime,index=True,default=datetime.now)
        movies=db.relationship('Movie',backref='tag')  #外键的关联
    
        def __repr__(self):
            return "<Tag %r>"  % self.title
    
    
    #电影
    class Movie(db.Model):
        __tablename__ ="movie"
        id=db.Column(db.Integer,primary_key=True)
        title=db.Column(db.String(255),unique=True)
        url=db.Column(db.String(255),unique=True)
        info=db.Column(db.Text)
        logo=db.Column(db.String(255),unique=True)
        star=db.Column(db.SmallInteger)
        playnum=db.Column(db.BigInteger)
        commentnum=db.Column(db.BigInteger)
        tag_id=db.Column(db.Integer,db.ForeignKey('tag.id'))
        area=db.Column(db.String(255))
    
        release_time=db.Column(db.Date)
        length=db.Column(db.String(100))
        addtime=db.Column(db.DateTime, index=True, default=datetime.now)
        comments = db.relationship('Comment', backref='movie')
        moviecols = db.relationship('Moviecol', backref='movie')
    
        def __repr__(self):
            return "<movie %r>" % self.title
    
    
    
    class Preview(db.Model):
        id = db.Column(db.Integer, primary_key = True)
        title = db.Column(db.String(255), unique=True)
        logo = db.Column(db.String(255), unique=True)
        addtime = db.Column(db.DateTime, index=True, default=datetime.now)
    
        def __repr__(self):
            return "<Preview %r>" %self.title
    
    
    #评论
    class Comment(db.Model):
        __tablename__="comment"
        id = db.Column(db.Integer, primary_key=True)
        content=db.Column(db.Text)
        movie_id = db.Column(db.Integer, db.ForeignKey('movie.id'))
        user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
        addtime = db.Column(db.DateTime, index=True, default=datetime.now)
    
        def __repr__(self):
            return "<comment %r>" % self.id
    
    
    #电影的收藏
    
    class Moviecol(db.Model):
        __tablename__="moviecol"
        id = db.Column(db.Integer, primary_key=True)
        movie_id = db.Column(db.Integer, db.ForeignKey('movie.id'))
        user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
        addtime = db.Column(db.DateTime, index=True, default=datetime.now)
    
        def __repr__(self):
            return "<Moviecol %r>" % self.id
    
    
    
    
    #权限
    class Auth(db.Model):
        __tablename__="auth"
        id=db.Column(db.Integer,primary_key=True)
        name=db.Column(db.String(100),unique=True)
        url=db.Column(db.String(255),unique=True)
        addtime=db.Column(db.DateTime, index=True, default=datetime.now)
    
        def __repr__(self):
            return "<Auth %r>" % self.name
    
    #角色
    class Role(db.Model):
        __tablename__="role"
        id=db.Column(db.Integer,primary_key=True)
        name=db.Column(db.String(100),unique=True)
        auths=db.Column(db.String(600))
        addtime=db.Column(db.DateTime, index=True, default=datetime.now)
        admins=db.relationship("Admin",backref='role')
    
        def __repr__(self):
            return "<Role %r>" % self.name
    
    #管理员
    class Admin(db.Model):
        __tablename__ = "admin"
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(100), unique=True)
        pwd = db.Column(db.String(100))
        is_super=db.Column(db.SmallInteger)
        role_id=db.Column(db.Integer,db.ForeignKey('role.id'))#所属角色
        ddtime = db.Column(db.DateTime, index=True, default=datetime.now)
        adminlog=db.relationship("Adminlog",backref='admin') #管理员外键关联
        Oplogs = db.relationship("Oplog", backref='admin')
        def __repr__(self):
            return "<Admin %r>" % self.name
    #管理员日志
    class Adminlog(db.Model):
        __tablename__="adminlog"
        id=db.Column(db.Integer,primary_key=True) #编号
        admin_id=db.Column(db.Integer,db.ForeignKey('admin.id'))
        ip=db.Column(db.String(100))
        #登录ip.
        addtime=db.Column(db.DateTime,index=True,default=datetime.now)
    
        def __repr__(self):
            return "<adminlog %r>" % self.id
    
    
    
    #操作日志
    class Oplog(db.Model):
        __tablename__="oplog"
        id = db.Column(db.Integer, primary_key=True)  # 编号
        admin_id=db.Column(db.Integer,db.ForeignKey('admin.id'))
        ip=db.Column(db.String(100))
        #登录ip.
        reason=db.Column(db.String(600))
        #操作原因
        addtime=db.Column(db.DateTime,index=True,default=datetime.now)
    
        def __repr__(self):
            return "<adminlog %r>" % self.id
    
    
    if __name__ =='__main__':
        #db.create_all()
        """
            role=Role(
                name="超级管理员",
                auths=""
            )
            db.session.add(role)
            db.session.commit()
        """
        from werkzeug.security import generate_password_hash
        admin=Admin(
             name='kk',
             pwd=generate_password_hash("kk"),
             is_super=0,
             role_id=1
        )
        db.session.add(admin)
        db.session.commit()
  • 相关阅读:
    jvm性能调优---jstat的用法
    flume-ng+Kafka+Storm+HDFS 实时系统搭建
    proxool
    Shell实现跳板机,为什么用跳板机
    JUC回顾之-ThreadPoolExecutor的原理和使用
    java集合之ArrayList的实现原理
    JMeter性能测试介绍学习一
    基础知识《十三》深入浅出Java回调机制
    怎样将myeclipse里默认编码设置成utf-8
    《转》怎样看待比自己强的人
  • 原文地址:https://www.cnblogs.com/kk328/p/10208011.html
Copyright © 2011-2022 走看看