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 ...
随机推荐
- 【读书笔记】2_增强学习中的Q-Learning
本文为Thomas Simonini增强学习系列文章笔记或读后感,原文可以直接跳转到medium系列文章. 主要概念为: Q-Learning,探讨其概念以及用Numpy实现 我们可以将二维游戏想象成 ...
- 机器视觉必知-GenICam相机通用接口标准
机器视觉必知-GenICam相机通用接口标准 GenICam(相机通用接口): 一种通用软件接口 通用相机接口标准 目前机器视觉行业所使用的相机几乎均以相同方式来进行配置,即:---通过在注册表中的读 ...
- java设计模式之装饰器模式以及在java中作用
在JAVA I/O类库里有很多不同的功能组合情况,这些不同的功能组合都是使用装饰器模式实现的,下面以FilterInputStream为例介绍装饰器模式的使用 FilterInputStream和F ...
- Hexo 博客部署到 GitHub
本文简单记录了一下把 Hexo 部署到 GitHub 上的过程,也是搭建静态博客最常用的一种方式. 前面写了关于如何把 Hexo 安装在树莓派上的教程,但树莓派毕竟是连着自己的家的路由器,万一哪天网断 ...
- DFS(5)——hdu1728逃离迷宫
一.题目回顾 题目链接:逃离迷宫 Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地 ...
- bbbbbeta
about beta 写在开头:(小声bb,无任何专业知识) 好了正文开始了 = = beta冲刺对于来说可能是让我觉得非常有成就感的叭,相比于alpha,每天都能写代码的感觉真好鸭(认真脸)(虽然天 ...
- 转:C++中临时对象及返回值优化
http://www.cnblogs.com/xkfz007/articles/2506022.html 什么是临时对象? C++真正的临时对象是不可见的匿名对象,不会出现在你的源码中,但是程序在运行 ...
- Struts2-part1
作者:禅楼望月(http://www.cnblogs.com/yaoyinglong) 1. Struts2应用的开发步骤: ① 在web.xml中配置核心的Filter来拦截用户的请求. <w ...
- [CF912A]Tricky Alchemy
题意:你有a个黄水晶和b个蓝水晶,要求要x个黄水晶球(2黄),y个绿水晶球(1黄1蓝),z个蓝水晶球(3蓝),问还要多少水晶题解:模拟 C++ Code: #include<cstdio> ...
- [洛谷P2839][国家集训队]middle
题目大意:给你一个长度为$n$的序列$s$.$Q$个询问,问在$s$中的左端点在$[a,b]$之间,右端点在$[c,d]$之间的子段中,最大的中位数. 强制在线. 题解:区间中位数?二分答案,如果询问 ...