• 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()
  • 相关阅读:
    RabbitMQ + PHP (二)AMQP拓展安装
    RabbitMQ + PHP (一)入门与安装
    使用 Selenium 实现基于 Web 的自动化测试
    Selenium私房菜系列4 -- Selenium IDE的使用
    解决火狐浏览器安装不上Selenium IDE插件“此附加组件无法安装”
    (技术分享) 解决 Firefox 显示“已阻止载入混合活动内容”的问题
    MyEclipse打开 HTML 报错Failed to create the part's controls
    python2x与python3x的区别
    Python基础总结
    Mycat 读写分离+分库分表
  • 原文地址:https://www.cnblogs.com/kk328/p/10208011.html
Copyright © 2020-2023  润新知