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

#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. CRLF在过滤XSS语句后打Cookie方式

    看了很长时间的漏洞奖励计划,学到了不少骚姿势,我觉得这个姿势很不错,总结下写篇文章发出来.针对CRLF漏洞打cookie的方法. 这里不讲概念挖掘方式了,以实战为主: 阅读文章前先参考文章:http: ...

  2. busybox(四)完善

    目录 busybox(四)完善 proc挂载 手动挂载 proc解析 使用脚本自动挂载 使用mount-a挂载 udev/mdev 挂载 使用jffs2 文件系统格式 安装zlib 安装jffs2 生 ...

  3. centos7项目部署

    1. 安装nginx   添加CentOS 7 Nginx yum资源库 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/ng ...

  4. kubernetes之ingress及ingress controller

    什么是ingress Ingress是授权入站连接到达集群服务的规则集合. 从外部流量调度到nodeprot上的service 从service调度到ingress-controller ingres ...

  5. jQuery使用(九):队列及实现原理、基于队列模拟实现animate()

    开篇一张图之队列模型 queue()如何使用? queue()原理实现? 基于queue()模拟实现animate() 一.使用queuer方法.理解队列原理 queue() dequeue() cl ...

  6. Web常见漏洞修复建议

    一.SQL注入修复建议 1.过滤危险字符,例如:采用正则表达式匹配union.sleep.and.select.load_file等关键字,如果匹配到则终止运行. 2.使用预编译语句,使用PDO需要注 ...

  7. 【webpack】中file-loader和url-loader使用方法

    file-loader 可以指定要复制和放置资源文件的位置,以及如何使用版本哈希命名以获得更好的缓存.此外,这意味着 你可以就近管理图片文件,可以使用相对路径而不用担心部署时 URL 的问题.使用正确 ...

  8. 第四周结对项目总结及改进(ui/web)

    项目介绍 随着社会科技的进步和多媒体教育的日益发展,越来越来的学生正在接受着新时代下的教育模式,而且手机.电脑等科技产品的普及以及其带来的更高效更便捷的模式 使得它们成为当代学生学习中的一种很好的学习 ...

  9. JAVA进阶5

    间歇性混吃等死,持续性踌躇满志系列-------------第5天 1.IDEA常用快捷键 2.简单方法的使用 package cn.intcast.day05.demo01; public clas ...

  10. oracle利用redo恢复

    oracle媒介恢复(Media Recovery) 官方资料 https://docs.oracle.com/database/121/ADMQS/GUID-CBC5870F-2C9A-4F67-B ...