国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL數據庫設計之利用Python操作Schema方法詳解

2024-07-24 12:50:57
字體:
來源:轉載
供稿:網友

弓在箭要射出之前,低聲對箭說道,“你的自由是我的”。Schema如箭,弓似Python,選擇Python,是Schema最大的自由。而自由應是一個能使自己變得更好的機會。

Schema是什么?

不管我們做什么應用,只要和用戶輸入打交道,就有一個原則--永遠不要相信用戶的輸入數據。意味著我們要對用戶輸入進行嚴格的驗證,web開發時一般輸入數據都以JSON形式發送到后端API,API要對輸入數據做驗證。一般我都是加很多判斷,各種if,導致代碼很丑陋,能不能有一種方式比較優雅的驗證用戶數據呢?Schema就派上用場了。

㈠ MySQLdb部分

表結構:

mysql> use sakila; mysql> desc actor; +-------------+----------------------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------------------+------+-----+-------------------+-----------------------------+ | actor_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | first_name | varchar(45) | NO | | NULL | | | last_name | varchar(45) | NO | MUL | NULL | | | last_update | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | +-------------+----------------------+------+-----+-------------------+-----------------------------+ 4 rows in set (0.00 sec)

數據庫連接模塊:

[root@DataHacker ~]# cat dbapi.py #!/usr/bin/env ipython #coding = utf-8 #Author: linwaterbin@gmail.com #Time: 2014-1-29 import MySQLdb as dbapi USER = 'root' PASSWD = 'oracle' HOST = '127.0.0.1' DB = 'sakila' conn = dbapi.connect(user=USER,passwd=PASSWD,host=HOST,db=DB)

1 打印列的元數據

[root@DataHacker ~]# cat QueryColumnMetaData.py #!/usr/bin/env ipython from dbapi import * cur = conn.cursor() statement = """select * from actor limit 1""" cur.execute(statement) print "output column metadata....." print for record in cur.description: print record cur.close() conn.close()

1.)調用execute()之后,cursor應當設置其description屬性
2.)是個tuple,共7列:列名、類型、顯示大小、內部大小、精度、范圍以及一個是否接受null值的標記

[root@DataHacker ~]# chmod +x QueryColumnMetaData.py [root@DataHacker ~]# ./QueryColumnMetaData.py output column metadata..... ('actor_id', 2, 1, 5, 5, 0, 0) ('first_name', 253, 8, 45, 45, 0, 0) ('last_name', 253, 7, 45, 45, 0, 0) ('last_update', 7, 19, 19, 19, 0, 0)

2 通過列名訪問列值

默認情況下,獲取方法從數據庫作為"行"返回的值是元組

In [1]: from dbapi import * In [2]: cur = conn.cursor() In [3]: v_sql = "select actor_id,last_name from actor limit 2" In [4]: cur.execute(v_sql) Out[4]: 2L In [5]: results = cur.fetchone() In [6]: print results[0] 58 In [7]: print results[1] AKROYD
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万全县| 宝应县| 屏东县| 东乡族自治县| 墨玉县| 汶上县| 射阳县| 启东市| 金寨县| 铜陵市| 陈巴尔虎旗| 泾阳县| 新闻| 乐山市| 南昌县| 若羌县| 临武县| 车致| 新安县| 贵德县| 新巴尔虎左旗| 吉隆县| 绩溪县| 外汇| 通道| 马龙县| 金塔县| 阆中市| 莒南县| 夏津县| 普兰店市| 海林市| 东乡| 江安县| 黑山县| 舒城县| 阳谷县| 黎川县| 东宁县| 墨脱县| 望城县|