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操作之建表的更多相关文章

  1. 0420-mysql命令(数据库操作层级,建表,对表的操作)

    注意事项: 符号必须为英文. 数据库操作层级: 建表大全: #新建表zuoye1:drop table if exists zuoye1;create table zuoye1(    id int ...

  2. SpringBoot入门系列~Spring-Data-JPA自动建表

    1.pom.xml引入Spring-Data-Jpa和mysql依赖 <!-- Spring-data-jpa依赖 --> <dependency> <groupId&g ...

  3. 【hbase】——Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询

    1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...

  4. (转)Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询

    1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...

  5. Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询

    1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...

  6. Mac下安装MySQL、Workbench以及建数据库建表最基础操作

    刚用上Mac,什么都不懂,加之以前还没有用过mysql,就想着在Mac上装一个mysql来自己玩,奈何,在网上找了大半天,没有一个干货!愤怒!下面是我安装的过程,希望能帮到和我情况差不多的朋友   首 ...

  7. 【Java框架型项目从入门到装逼】第九节 - 数据库建表和CRUD操作

    1.新建学生表 这节课我们来把和数据库以及jdbc相关的内容完成,首先,进行数据库建表.数据库呢,我们采用MySQL数据库,我们可以通过navcat之类的管理工具来轻松建表. 首先,我们得建一个数据库 ...

  8. hbase操作(shell 命令,如建表,清空表,增删改查)以及 hbase表存储结构和原理

    两篇讲的不错文章 http://www.cnblogs.com/nexiyi/p/hbase_shell.html http://blog.csdn.net/u010967382/article/de ...

  9. java封装实现Excel建表读写操作

    对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面.小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Exce ...

随机推荐

  1. 语法测试cnblogs使用Markdown

    参考自作业部落Cmd Markdown 编辑器 https://www.zybuluo.com 欢迎使用 Cmd Markdown 编辑阅读器 什么是 Markdown Markdown 是一种方便记 ...

  2. php中数据类型的强制转换

    1.在PHP开发种在很多的地方要涉及到数据类型的转换,尤其是涉及到金额的数据类型,一定要转换成float类型,否则在入库的时候可能会因为数据类型的不同覆盖掉之前的金额.(字符串和float类型相加) ...

  3. php自学笔记2

    php运行原理: 如果请求服务器上的资源是html网页,服务器直接将网页响应给客户端浏览器: 如果请求服务器上的资源是php,服务器先解释执行php,解释为标准的html代码响应给客户端浏览器.php ...

  4. ubuntu 和 centOS 的apache设置

    更改ubuntu的网站访问根目录: 在sudo gedit /etc/apache2/sites-enabled/000-default,把 DocumentRoot /var/www      #这 ...

  5. Java相关配置合集

    Java环境变量配置: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为C:\java\jdk1.6.0_08: 2.安装完成后,右击“我的电脑”,点击“属性”: 3.XP选 ...

  6. windbg*****************************TBD

    achieve structure from a simple address Dt address know pending IRP in a module !thread xxxxxx到底能提供哪 ...

  7. 在submit_bio处使用stapn

    想着在submit_bio的地方,发现在guru模式下,stap是经常性地把内核整挂呀,不得已,也没有发现stap什么比较好的调试方法,所以索性直接使用stap的语法了,但是发现有问题呢,有的时候bv ...

  8. Hibernate常用方法之_插入

    1.使用session的save方法进行插入 public void saveUser(User user){ Session session = null; Transaction transact ...

  9. 变量可以通过into赋值

  10. 【bzoj3379】[Usaco2004 Open]Turning in Homework 交作业 区间dp

    题目描述 数轴上有C个点,每个点有一个坐标和一个访问时间,必须在这个时间后到达这个点才算访问完成.可以在某个位置停留.每在数轴上走一个单位长度消耗一个单位的时间,问:访问所有点并最终到B花费的最小时间 ...