在創(chuàng)建數(shù)據(jù)庫表格之前,首先請(qǐng)保證數(shù)據(jù)庫已經(jīng)通過MySQL命令創(chuàng)建完畢。
mysql> create database mydb character set utf8;Query OK, 1 row affected (0.08 sec)數(shù)據(jù)庫創(chuàng)建好以后,我們需要定義數(shù)據(jù)庫表類型。
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行定義了一個(gè)元數(shù)據(jù)對(duì)象。它包含了與數(shù)據(jù)庫有關(guān)的所有的屬性。當(dāng)然,在執(zhí)行這一句時(shí),數(shù)據(jù)庫元數(shù)據(jù)對(duì)象還是沒有任何內(nèi)容的。
代碼第6-10行定義了一個(gè)數(shù)據(jù)庫表。在這個(gè)方法中:第一個(gè)參數(shù)‘users’是數(shù)據(jù)庫表的名字;第二個(gè)參數(shù),是我們剛剛創(chuàng)建的metadata對(duì)象。后面的幾個(gè)參數(shù)分別定義了數(shù)據(jù)庫表的各列。大家一看便知,不再一一介紹。
在執(zhí)行這個(gè)方法時(shí),會(huì)把users表的相關(guān)屬性都添加進(jìn)metadata對(duì)象。
數(shù)據(jù)庫表定義好以后,便可以實(shí)行創(chuàng)建了。
from sqlalchemy import create_engineENGINE = create_engine("mysql://root:password@localhost:3306/mydb?charset=utf8", convert_unicode=True)users_table.create(bind=ENGINE)上面的代碼一目了然,無須介紹。代碼執(zhí)行完后,可以看到數(shù)據(jù)庫中已經(jīng)新建了一個(gè)名為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)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注