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)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...
随机推荐
- vim命令编辑Host文件
用vim命令打开Host文件 [root@localhost /]# vim /etc/hosts 按"i"键,进入编辑模式按"Esc"键,退出编辑模式 按&q ...
- Zsh安装及常用操作
Zsh因为插件丰富而闻名,但是 zsh 的默认配置及其复杂繁琐,让人望而却步,直到有了oh-my-zsh这个开源项目,让zsh配置降到0门槛.而且它完全兼容 bash. 安装Zsh: [root@lo ...
- (字符串 数组 递归 双指针) leetcode 344. Reverse String
Write a function that reverses a string. The input string is given as an array of characters char[]. ...
- 微信小程序无法定位
获取定位的时候报:errMsg:getLocation:fail:require permission desc 错 解决办法: 在app.js加入代码 //app.js新增如下代码 config = ...
- usb的hid鼠标键盘报告描述符(五)
title: usb的hid鼠标键盘报告描述符 tags: linux date: 2018/12/20/ 18:05:08 toc: true --- usb的hid鼠标键盘报告描述符 https: ...
- Kubernetes之ServiceAccount
ServiceAccount 是什么 Service Account为Pod中的进程和外部用户提供身份信息.所有的kubernetes集群中账户分为两类,Kubernetes管理的serviceacc ...
- Docker:企业级私有仓库harbor[十六]
一.安装配置 1.下载安装包 链接:https://pan.baidu.com/s/1Z9I7zYXSt-8ve3lFT2YCeg 提取码:iuqj 2.安装docker和docker-compose ...
- 深入学习CSS外边距margin(重叠效果,margin传递效果,margin:auto实现块级元素水平垂直居中效果)
前言 margin是盒模型几个属性中一个非常特殊的属性.简单举几个例子:只有margin不显示当前元素背景,只有margin可以设置为负值,margin和宽高支持auto,以及margin具有非常奇怪 ...
- 关于缓存和 Chrome 的“新版刷新”
在读本文前你要确保读过我的上篇文章<扼杀 304,Cache-Control: immutable>,因为本文是接着上文写的.上文说到,在现代 Web 上,“条件请求/304 响应”绝大多 ...
- nginx 中用 sed 批量增加配置文件内容
#!/bin/bash confs=`ls /etc/nginx/conf.d/cms_vhosts/` cd /etc/nginx/conf.d/cms_vhosts for log in $con ...