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

#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()

python flask_Sqlalchemy管理数据库的更多相关文章

  1. Python中管理数据库

    前言:Python中是利用MySQL模块和数据库之间建立联系. MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL ...

  2. 使用Python管理数据库

    使用Python管理数据库   这篇文章的主题是如何使用Python语言管理数据库,简化日常运维中频繁的.重复度高的任务,为DBA们腾出更多时间来完成更重要的工作.文章本身只提供一种思路,写的不是很全 ...

  3. flask 使用Flask-SQLAlchemy管理数据库(连接数据库服务器、定义数据库模型、创建库和表)

    使用Flask-SQLAlchemy管理数据库 扩展Flask-SQLAlchemy集成了SQLAlchemy,它简化了连接数据库服务器.管理数据库操作会话等各种工作,让Flask中的数据处理体验变得 ...

  4. 【简说Python WEB】数据库

    目录 [简说Python WEB]数据库 数据库表 docker安装MySQL Flask-SQLAlchemy操纵MySQL数据库 初始化 定义模型 定义关系 数据库的CRUD操作 创建表 inse ...

  5. 《Python操作SQLite3数据库》快速上手教程

    为什么使用SQLite数据库? 对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是大多数复杂的数据驱动的应用需要全功能的关系型数据库.SQLite的目标则是介于两者之间的中小系统.它有以 ...

  6. python——连接Oracle数据库

    前言 Python自带的模块中有很多操纵文件的.我们可以把文件的数据读出来,经过处理还可以将数据写入文件中.但是对于数据的管理和分析来说,数据库还是专业一些.如果Python能和数据库结合在一起,那么 ...

  7. python上下文管理

    一.python上下文介绍: python中的上下文,指的就是代码所执行的环境状态,或者运行的场景 python上下文管理器规定了某个对象的使用范围,当进入或者离开了使用范围,会有相应的操作,多用于资 ...

  8. Python连接MySQL数据库的多种方式

    上篇文章分享了windows下载mysql5.7压缩包配置安装mysql 后续可以选择 ①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器 ...

  9. 【Python全栈-数据库】数据库基础

    数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...

随机推荐

  1. license.json

    {"license":{"uid":"5359f3d1-8c8c-462b-a17b-b7eb0c3ddb8f","type&qu ...

  2. pymongo 使用方法(增删改查)

    #!/usr/bin/env python # -*- coding:utf-8 -*- """ MongoDB存储 在这里我们来看一下Python3下MongoDB的存 ...

  3. Numpy 系列(九)- 结构化数组

      简介 之前我们操作Numpy的数组时,都是通过索引来操作的.针对二维数组,使用索引可以完成对行.列的操作.但是这是非常不直观的.可以把二维数组想象成一个excel表格,如果表格没有列名,操作起来会 ...

  4. js深拷贝

    // 判断是否为对象 function isObject(o) { return (typeof o === 'object' || typeof o === 'function') &&am ...

  5. VMware 设置网络

    在VMware上安装 系统完成后,设置虚拟网络 这里的VMware 版本为 14. 本文以window server 2016 为例. 在虚拟机上菜单栏中, 编辑  >> 虚拟网络编辑器 ...

  6. postgreSql 常用操作总结

    0. 启动pgsl数据库 pg_ctl -D /xx/pgdata start 1. 查看pgsl版本 pg_ctl --version 1. 命令行登录数据库 psql -U username -d ...

  7. MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法

    MySQL都有什么锁? MySQL有三种锁的级别:页级.表级.行级. 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度 ...

  8. JavaScript对象 Object类型基础

    前言 JavaScript 对象是整个语言学习的一个难点.本文主要带大家入门学习Object知识 对象定义 javascript的基本数据类型包括undefined.null.boolean.stri ...

  9. [再寄小读者之数学篇](2014-06-23 Bernstein's inequality)

    $$\bex \supp \hat u\subset \sed{2^{j-2}\leq |\xi|\leq 2^j} \ra \cfrac{1}{C}2^{jk}\sen{f}_{L^p} \leq ...

  10. /etc/profile文件被改坏导致命令不可用

    这几天在装一个软件,设置环境变量的时候,不小心把/etc/profile文件改坏了(就是没配置对),在source /etc/profile后导致所有命令都不可用了.出现如下报错: -bash: xx ...