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)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...
随机推荐
- elasticsearch更改mapping(不停服务重建索引)
转载地址:http://donlianli.iteye.com/blog/1924721?utm_source=tuicool&utm_medium=referral Elasticsearc ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc
在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件
- Oracle 获取前几行数据问题的陷阱
查询用户数据表,需要根据时间正序排序,然后获取时间最早的前三条数据,是不是第一印象想这么写: select * from users where rownum<4 order by datati ...
- cobbler批量安装操作
打开mirrors.aliyun.com/epel http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm rpm -ivh h ...
- C# 数独算法——LINQ+委托
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Sing ...
- Hadoop记录-metastore jmx配置
参考:http://www.lixiuliang.cn/categories/%E5%A4%A7%E6%95%B0%E6%8D%AE/ 1.修改bin/hive文件 添加jvm启动参数: if [ $ ...
- django - 总结 - 跨域请求
script ->jsonp跨域 浏览器的同源策略:不能跨越网站请求信息: XMLHttpRequests遵循这个规定. 因此ajax等基于XML的都不能进行跨站请求 而我们知道img,ifra ...
- selenium新手常遇到的坑
本文是以Chrome为例: 1.Chrome相对应的chromedriver的版本信息[点击浏览器的右上角的浏览器信息--------帮助-------关于Google Chrome查看相对应的信息- ...
- Java的三大特性
一.封装性 含义:对外不可见,保护属性和方法不被外部多看见 实现:通过关键字private声明,用get.set方法为外部访问. 引用的传递: static关键字:修饰属性(全局属性):修饰方法(直接 ...
- Leetcode#521. Longest Uncommon Subsequence I(最长特殊序列 Ⅰ)
题目描述 给定两个字符串,你需要从这两个字符串中找出最长的特殊序列.最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中的某些字符实现,但 ...