mysqlalchmy操作之建表
1 创建链接基础类。
# -*- coding=utf-8 -*-
import os
from sqlalchemy import (create_engine,MetaData)
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base from config.config import db_args def get_engine_():
args=db_args()
password = os.getenv('DB_PASS', args['passwd'])
charset = os.getenv('CharSet', args['charset'])
connect_str= "{}+pymysql://{}:{}@{}:{}/{}?charset={}".format(args['db_type'], args['user'], password,args['host'], args['port'], args['db'],charset)
engine=create_engine(connect_str)
return engine
eng=get_engine_()
Base=declarative_base()#生成一个SqlORM 基类
Session=sessionmaker(bind=eng)#bind绑定,创建与数据库的会话session class
db_session=Session()
metadata=MetaData(get_engine_()) # __all__ = ['eng', 'Base', 'db_session', 'metadata'] #它是一个string元素组成的list变量
2.设计需要的表的字段
# -*- coding=utf-8 -*-
from sqlalchemy import (
Table, Column, INTEGER, String, Text,DateTime)
from .basic import metadata
import datetime
#user_info
user_info=Table("user_info",metadata,
Column("id",INTEGER,primary_key=True,autoincrement=True),
Column("login_id",String(200)),
Column("login_pwd",String(200)),
Column("user_name",String(200)),
Column("domain_id",String(6), default=100505, server_default='100505'),
Column("user_id",String(200)),
Column("enable",String(2),default=1,server_default='1'),
Column("need_comment", String(2), default=1, server_default='1'),
Column("need_days", String(20), default=30, server_default='30'),
Column("update_time",DateTime, default=datetime.datetime.utcnow,index=True),
Column("create_user",String(200)),
) #home_info
home_info=Table("home_info",metadata,
Column("id",INTEGER,primary_key=True,autoincrement=True),
Column("user_id",String(200)),
Column("user_name", String(200)),
Column("follows_num",String(200),default=0, server_default='0'),
Column("fans_num",String(200),default=0, server_default='0'),
Column("wb_num",String(200),default=0, server_default='0'),
Column("home_url", String(200)),
Column("update_time", DateTime, default=datetime.datetime.utcnow,index=True),
Column("create_user", String(200)),
)
#wb_info
wb_info=Table("wb_info",metadata,
Column("id",INTEGER,primary_key=True,autoincrement=True),
Column("uid",String(200)),
Column("wb_id", String(200)),
Column("wb_content", String(2000)),
Column("read_num",String(200),default=0, server_default='0'),
Column("share_num",String(200),default=0, server_default='0'),
Column("comment_num",String(200),default=0, server_default='0'),
Column("like_num", String(200),default=0, server_default='0'),
Column("wb_url", String(200)),
Column("wb_time", DateTime, default=datetime.datetime.utcnow,index=True),
Column("wb_device", String(200)),
Column("update_time", DateTime, default=datetime.datetime.utcnow,index=True),
Column("create_user", String(200)),
)
#comment_info comment_info=Table("comment_info",metadata,
Column("id",INTEGER,primary_key=True,autoincrement=True),
Column("wb_Id",String(200),index=True),
Column("comment_user",String(200)),
Column("comment_time",DateTime, default=datetime.datetime.utcnow,index=True),
Column("comment_content",String(2000)),
Column("comment_id", String(200)),
Column("ico_url", String(200)),
Column("update_time", DateTime, default=datetime.datetime.utcnow,index=True),
Column("create_user", String(200)),
) __all__ = ['user_info', 'home_info', 'wb_info', 'comment_info']
3.映射到实体
# -*- coding=utf-8 -*-
from dbs.basic import Base
from dbs.tables import *
#user_info
#home_info
#wb_info
#comment_info class LoginInfo(Base):
__table__=user_info class HomeoData(Base):
__table__=home_info class WeiBoData(Base):
__table__=wb_info class CommentInfo(Base):
__table__=comment_info
4.创建表
# -*- coding=utf-8 -*-
from dbs.tables import *
from dbs.basic import metadata ,eng def create_all_table():
# 创建数据表,如果数据表存在,则忽视
metadata.create_all() if __name__ == "__main__":
try:
create_all_table()
print("create table successful.")
except:
print("create table failed !!!")
mysqlalchmy操作之建表的更多相关文章
- 0420-mysql命令(数据库操作层级,建表,对表的操作)
注意事项: 符号必须为英文. 数据库操作层级: 建表大全: #新建表zuoye1:drop table if exists zuoye1;create table zuoye1( id int ...
- SpringBoot入门系列~Spring-Data-JPA自动建表
1.pom.xml引入Spring-Data-Jpa和mysql依赖 <!-- Spring-data-jpa依赖 --> <dependency> <groupId&g ...
- 【hbase】——Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- (转)Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- Mac下安装MySQL、Workbench以及建数据库建表最基础操作
刚用上Mac,什么都不懂,加之以前还没有用过mysql,就想着在Mac上装一个mysql来自己玩,奈何,在网上找了大半天,没有一个干货!愤怒!下面是我安装的过程,希望能帮到和我情况差不多的朋友 首 ...
- 【Java框架型项目从入门到装逼】第九节 - 数据库建表和CRUD操作
1.新建学生表 这节课我们来把和数据库以及jdbc相关的内容完成,首先,进行数据库建表.数据库呢,我们采用MySQL数据库,我们可以通过navcat之类的管理工具来轻松建表. 首先,我们得建一个数据库 ...
- hbase操作(shell 命令,如建表,清空表,增删改查)以及 hbase表存储结构和原理
两篇讲的不错文章 http://www.cnblogs.com/nexiyi/p/hbase_shell.html http://blog.csdn.net/u010967382/article/de ...
- java封装实现Excel建表读写操作
对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面.小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Exce ...
随机推荐
- DOM操作相关案例 模态对话框,简易留言板,js模拟选择器hover,tab选项卡,购物车案例
1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <h ...
- Laxcus大数据管理系统2.0(3)- 第一章 基础概述 1.2 产品特点
1.2 产品特点 Laxcus大数据管理系统运行在计算机集群上,特别强调软件对分布资源可随机增减的适应性.这种运行过程中数据动态波动和需要瞬时感知的特点,完全不同与传统的集中处理模式.这个特性衍生出一 ...
- Android之Activity小结
Acitivity: 四种状态:活动状态.暂停状态.停止状态.销毁状态 四种加载模式:standard ,singleTop,singleTask,singleInstance: 七大方法:onCre ...
- poj1789 Truck History最小生成树
Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 20768 Accepted: 8045 De ...
- lintcode-101-删除排序数组中的重复数字 II
101-删除排序数组中的重复数字 II 跟进"删除重复数字": 如果可以允许出现两次重复将如何处理? 样例 标签 数组 两根指针 脸书 思路 参照上一篇博客lintcode-100 ...
- poi解析excel出现格式不正确
后缀为xlsx的excel做系统导入时出现bug: Strict OOXML isn't currently supported, please see bug #57699 为了同时兼容03.07及 ...
- 【EasyNetQ】- 请求回复
EasyNetQ还支持请求/响应消息传递模式.这使得实现客户端/服务器应用程序变得容易,客户端向服务器发出请求,然后服务器处理请求并返回响应.与传统的RPC机制不同,EasyNetQ请求/响应操作没有 ...
- el-table中操作一栏怎么根据当前行的信息显示编辑、删除、编辑完成按钮
对每个按钮是否显示,使用v-show绑定变量,因为每一行的v-show绑定的变量必须是唯一的(不然的话操作此行,其他行的状态也会跟着变化),所以不可能提前在.ts中对变量进行初始化,只能使用本行的字段 ...
- win7 C/C++,QT安装环境总结
1. 安装VMware,但是不能用,发现是权限问题,解决方式:使用管理员运行模式即可: 2. 安装win7 ultimate x64,找了半天找不到密钥,只要用激活软件,目前来说系统可用 3. 安装 ...
- java基础知识(一)- 数据类型
Java有两大数据类型: 基本数据类型,基本数据类型都可以直接分配到栈中 引用数据类型,引用存放在栈中,对象本身存放在堆中 基本数据类型共有四类八种 第一类:字符型(char) 第二类:逻辑型(boo ...