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 ...
随机推荐
- 语法测试cnblogs使用Markdown
参考自作业部落Cmd Markdown 编辑器 https://www.zybuluo.com 欢迎使用 Cmd Markdown 编辑阅读器 什么是 Markdown Markdown 是一种方便记 ...
- php中数据类型的强制转换
1.在PHP开发种在很多的地方要涉及到数据类型的转换,尤其是涉及到金额的数据类型,一定要转换成float类型,否则在入库的时候可能会因为数据类型的不同覆盖掉之前的金额.(字符串和float类型相加) ...
- php自学笔记2
php运行原理: 如果请求服务器上的资源是html网页,服务器直接将网页响应给客户端浏览器: 如果请求服务器上的资源是php,服务器先解释执行php,解释为标准的html代码响应给客户端浏览器.php ...
- ubuntu 和 centOS 的apache设置
更改ubuntu的网站访问根目录: 在sudo gedit /etc/apache2/sites-enabled/000-default,把 DocumentRoot /var/www #这 ...
- Java相关配置合集
Java环境变量配置: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为C:\java\jdk1.6.0_08: 2.安装完成后,右击“我的电脑”,点击“属性”: 3.XP选 ...
- windbg*****************************TBD
achieve structure from a simple address Dt address know pending IRP in a module !thread xxxxxx到底能提供哪 ...
- 在submit_bio处使用stapn
想着在submit_bio的地方,发现在guru模式下,stap是经常性地把内核整挂呀,不得已,也没有发现stap什么比较好的调试方法,所以索性直接使用stap的语法了,但是发现有问题呢,有的时候bv ...
- Hibernate常用方法之_插入
1.使用session的save方法进行插入 public void saveUser(User user){ Session session = null; Transaction transact ...
- 变量可以通过into赋值
- 【bzoj3379】[Usaco2004 Open]Turning in Homework 交作业 区间dp
题目描述 数轴上有C个点,每个点有一个坐标和一个访问时间,必须在这个时间后到达这个点才算访问完成.可以在某个位置停留.每在数轴上走一个单位长度消耗一个单位的时间,问:访问所有点并最终到B花费的最小时间 ...