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()
python flask_Sqlalchemy管理数据库的更多相关文章
- Python中管理数据库
前言:Python中是利用MySQL模块和数据库之间建立联系. MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL ...
- 使用Python管理数据库
使用Python管理数据库 这篇文章的主题是如何使用Python语言管理数据库,简化日常运维中频繁的.重复度高的任务,为DBA们腾出更多时间来完成更重要的工作.文章本身只提供一种思路,写的不是很全 ...
- flask 使用Flask-SQLAlchemy管理数据库(连接数据库服务器、定义数据库模型、创建库和表)
使用Flask-SQLAlchemy管理数据库 扩展Flask-SQLAlchemy集成了SQLAlchemy,它简化了连接数据库服务器.管理数据库操作会话等各种工作,让Flask中的数据处理体验变得 ...
- 【简说Python WEB】数据库
目录 [简说Python WEB]数据库 数据库表 docker安装MySQL Flask-SQLAlchemy操纵MySQL数据库 初始化 定义模型 定义关系 数据库的CRUD操作 创建表 inse ...
- 《Python操作SQLite3数据库》快速上手教程
为什么使用SQLite数据库? 对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是大多数复杂的数据驱动的应用需要全功能的关系型数据库.SQLite的目标则是介于两者之间的中小系统.它有以 ...
- python——连接Oracle数据库
前言 Python自带的模块中有很多操纵文件的.我们可以把文件的数据读出来,经过处理还可以将数据写入文件中.但是对于数据的管理和分析来说,数据库还是专业一些.如果Python能和数据库结合在一起,那么 ...
- python上下文管理
一.python上下文介绍: python中的上下文,指的就是代码所执行的环境状态,或者运行的场景 python上下文管理器规定了某个对象的使用范围,当进入或者离开了使用范围,会有相应的操作,多用于资 ...
- Python连接MySQL数据库的多种方式
上篇文章分享了windows下载mysql5.7压缩包配置安装mysql 后续可以选择 ①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器 ...
- 【Python全栈-数据库】数据库基础
数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...
随机推荐
- Hdoj 1517.A Multiplication Game 题解
Problem Description Stan and Ollie play the game of multiplication by multiplying an integer p by on ...
- Apache Flink:特性、概念、组件栈、架构及原理分析
2016-04-30 22:24:39 Yanjun Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtim ...
- Ubuntu16.04 g++5.4依旧不支持C++11问题
jacket@jacket:~$ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_6 ...
- HTML-Note
<meta>在 HTML 5 中,有一个新的 charset 属性,它使字符集的定义更加容易. charset character encoding 定义文档的字符编码. e.g. < ...
- Java Web之Cookie、Session
讲Cookie和Seesion之前,先讲一下HTTP连接其实是无序的,服务器不知道是谁在访问它.现在我们来实现一个简单的邮箱功能. 要求: 1.登录页面登录之后看到收件箱和欢迎我 2.点击收件箱看到几 ...
- JavaScript数据类型 String字符串类型的属性和方法
属性 字符串String类型的每个实例都有一个length属性,表示字符串中的字符个数.由于字符串是不可变的,所以字符串的长度也不可变 字符串的length属性不会在for/in循环中枚举,也不能通过 ...
- VSCode CSS自动补充前缀
1.安装AuotPrefixer. 2.代码里写css样式后,Ctrl+Shift+P,选择AutoPrefix CSS执行 结果如下
- 设 $y_1(x), y_2(x)$ 是 $y''+p(x)y'+q(x)y=0$ 的两个解 ($p(x), q(x)$ 连续), 且 $y_1(x_0)=y_2(x_0)=0$, $y_1(x)\not\equiv 0$. 试证: $y_1(x)$, $y_2(x)$ 线性相关.
设 $y_1(x), y_2(x)$ 是 $y''+p(x)y'+q(x)y=0$ 的两个解 ($p(x), q(x)$ 连续), 且 $y_1(x_0)=y_2(x_0)=0$, $y_1(x)\n ...
- 使用sessionStorage、localStorage存储数组与对象
先介绍一下localStorage localStorage对象是HTML5的客户端存储持久化数据的方案.为了能访问到同一个localStorage对象,页面必须来自同一个域名(子域名无效),使用同一 ...
- python开发遇到的坑(2)mongodb安装路径权限问题
个人比较懒,Mac 电脑直接使用命令行安装,brew install mongodb,但是遇到两个问题,其一: Error: The following directories are not wri ...