基本上,最新版的mysql-connector-python及pymysql都依據 PEP 249 – Python Database API Specification v2.0,所以,大多數基本語法都已經統一,並沒有太大的差別了,唯一的差就是安裝以及import的來源不同。
我們以mysql-connector-python為例,先安裝套件。
pip install mysql-connector-python
產生資料表並匯入資料
CREATE TABLE `job` (
`postid` int(11) NOT NULL,
`company` varchar(45) NOT NULL,
`content` text NOT NULL,
`pdate` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `job` (`postid`, `company`, `content`, `pdate`) VALUES
(1, 'Microsoft', '誠徵雲端工程師,三年工作經驗以上', '2024-10-18'),
(2, '萬里雲', '誠徵雲端工程師,一年工作經驗以上', '2024-10-19'),
(3, 'Google', '誠徵雲端工程師,三年工作經驗以上', '2024-10-20'),
(4, 'AWS Taiwan', '誠徵雲端工程師,三年工作經驗以上', '2024-10-25'),
(5, '伊雲谷', '誠徵雲端工程師,一年工作經驗以上', '2024-10-25'),
(6, '叡揚資訊', '誠徵程式設計師,一年工作經驗以上', '2024-10-25');
ALTER TABLE `job`
ADD PRIMARY KEY (`postid`);
ALTER TABLE `job`
MODIFY `postid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
COMMIT;
這是範例程式的內容
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM customers")
myresult = mycursor.fetchall()
for x in myresult:
print(x)
綜合我們上週的範例,我們來寫一個API
先import套件:
import mysql.connector
資料表參數設定
def getDB():
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="practice")
return mydb
加上下面這段程式碼:
@app.get("/job")
async def getJobs():
mydb = getDB()
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM job")
myresult = mycursor.fetchall()
return myresult
網頁上會看到: