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 !!!")
MySQL簡單建庫建表操作
create database selecttest character set utf8 use selecttest 1.學生表 student create table student sno varchar 20 primary key,sname varchar 20 not null,s...
MySQL 建庫建表等簡單操作
檢視已有庫 show databases show databases show databases g 新建庫的操作 create database 庫名 create database et 檢視建庫資訊 show create database 庫名 show create database ...
hive 建庫建表字段操作基礎
建庫 create database if not exists test03 建庫,並指定位置 查詢所有的資料庫 show databases 使用庫 use test03 展示所有表 show tables 顯示表結構 desc employee 顯示建立表的語句 詳細 show create ...