在創建數據庫表格之前,首先請保證數據庫已經通過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)
新聞熱點
疑難解答