2,python代码:
main.py
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/python
# -*- coding: utf-8 -*-
from flask import Flask
import MySQLdb
app = Flask(__name__)
mysql_host = "mysql"
mysql_user = "root"
mysql_pwd = "root"
mysql_db_name = "demo"
"""
CREATE DATABASE `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE `demo`.`user_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
"""
def query_db(sql):
db = MySQLdb.connect(mysql_host, mysql_user, mysql_pwd, mysql_db_name)
cur = db.cursor()
try:
cur.execute(sql)
result = cur.fetchall()
except:
print("error: sql:" + sql)
cur.close()
db.close()
return result
def update_db(sql):
print(sql)
db = MySQLdb.connect(mysql_host, mysql_user, mysql_pwd, mysql_db_name)
cur = db.cursor()
try:
cur.execute(sql)
except:
print("error: sql:" + sql)
db.commit()
cur.close()
db.close()
@app.route("/list")
def list():
results = query_db(" select id,name from `demo`.`user_info` ")
out = "results:\n"
for result in results:
id = result[0]
name = result[1]
out += "id:" + str(id) + ",name:" + name +"\n"
return out
@app.route("/add")
def add():
sql = " insert ignore into `demo`.`user_info`(`name` ) values ('zhangsan') "
update_db(sql)
return "ok"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
代码和之前的http没有太大区别,只是增加了数据库的查询和插入操作。
一共就有两个url,一个list,查询全部数据,一个add,写死增加。