在创建数据库表格之前,首先请保证数据库已经通过MySQL命令创建完毕。
mysql> create database mydb character set utf8;Query OK, 1 row affected (0.08 sec)数据库创建好以后,我们需要定义数据库表类型。
from sqlalchemy.dialects.mysql import (INTEGER, CHAR)from sqlalchemy import Column, Table, MetaDatameta = MetaData()users_table = Table('users', meta, Column('id', INTEGER, PRimary_key=True), Column('name', CHAR(127)), Column('passWord', CHAR(127)))代码第4行定义了一个元数据对象。它包含了与数据库有关的所有的属性。当然,在执行这一句时,数据库元数据对象还是没有任何内容的。
代码第6-10行定义了一个数据库表。在这个方法中:第一个参数‘users’是数据库表的名字;第二个参数,是我们刚刚创建的metadata对象。后面的几个参数分别定义了数据库表的各列。大家一看便知,不再一一介绍。
在执行这个方法时,会把users表的相关属性都添加进metadata对象。
数据库表定义好以后,便可以实行创建了。
from sqlalchemy import create_engineENGINE = create_engine("mysql://root:password@localhost:3306/mydb?charset=utf8", convert_unicode=True)users_table.create(bind=ENGINE)上面的代码一目了然,无须介绍。代码执行完后,可以看到数据库中已经新建了一个名为users表。
mysql> use mydbDatabase changedmysql> show tables;+----------------+| Tables_in_mydb |+----------------+| users |+----------------+1 row in set (0.00 sec)mysql> desc users;+----------+-----------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+-----------+------+-----+---------+----------------+| id | int(11) | NO | PRI | NULL | auto_increment || name | char(127) | YES | | NULL | || password | char(127) | YES | | NULL | |+----------+-----------+------+-----+---------+----------------+3 rows in set (0.01 sec)
新闻热点
疑难解答