1 #從數據庫獲取數據 2 import pymysql,hashlib 3 import flask,json 4 5 def op_mysql(sql:str): 6 mysql_info = { 7 'host': 'xx.2xx.z.zz0', 8 'port': 3306, 9 'password': 'ssdfds6', 10 'user': 'xx', 11 'db': 'jxxx', 12 'charset': 'utf8', 13 'autocommit': True 14 } 15 result = '執行完成' 16 conn = pymysql.connect(**mysql_info) 17 cur = conn.cursor(pymysql.cursors.DictCursor) #建立游標 18 cur.execute(sql) 19 if sql.strip().lower().startswith('select'): 20 # result = cur.fetchone() 21 result = cur.fetchall() 22 cur.close() 23 conn.close() 24 return result 25 26 server = flask.Flask(__name__) 27 28 @server.route('/table_data') 29 def get_table_data(): 30 table_name = flask.request.args.get('table_name') 31 limit = flask.request.args.get('limit') 32 sql = 'select * from %s limit %s'%(table_name,limit) 33 result = op_mysql(sql) #結果是一個列表 34 #[{"id": 422, "username": "glw", "passwd": "123455", "is_admin": 123, "error_count": 0}, 35 # {"id": 424, "username": "glw1", "passwd": "123455", "is_admin": 123, "error_count": 0}, ] 36 return json.dumps(result,ensure_ascii=False) #list也可以轉成json串 37 38 #優化 要是傳參的時候 不傳limit或者不傳table_name或者傳不存在的表名稱或者limit傳的不是數字 39 @server.route('/table_data') 40 def get_table_data(): 41 #沒有實現校驗表是否存在 42 #只能獲取這幾張表 43 tables = ['app_myuser','dsk_test app_student','pp_product'] 44 table_name = flask.request.args.get('table_name') 45 limit = flask.request.args.get('limit','10') 46 if table_name not in tables: 47 return json.dumps({'msg':'沒有獲取這個表的權限!'}) 48 if not table_name: 49 return json.dumps({'msg':'table_name是必填字段!'},ensure_ascii=False) 50 if limit.isdigit(): 51 sql = 'select * from %s limit %s'%(table_name,limit) 52 else: 53 return json.dumps({'msg':'limit請傳入一個整數!'},ensure_ascii=False) 54 result = op_mysql(sql) 55 return json.dumps(result, ensure_ascii=False) # list也可以轉成json串 56 57 def md5(s,): 58 s = (str(s)+'#$%$%').encode() 59 m = hashlib.md5(s)#加密 60 return m.hexdigest() 61 62 63 #實現添加成員 #並且密碼加密存數據庫 64 @server.route('/add_mem',methods=['post']) 65 def add_mem(): 66 username = flask.request.json.get('username') 67 password = flask.request.json.get('password') 68 if username and password: 69 sql = 'select * from app_myuser where username = "%s"' %username 70 if op_mysql(sql): 71 data = {'msg':'用戶已存在!'} 72 else: 73 new_password = md5(password) 74 insert_sql = 'insert into app_myuser(username,passwd) value ("%s","%s")'%(username,new_password) 75 data = {'msg':'用戶添加成功!'} 76 op_mysql(insert_sql) 77 else: 78 data = {'msg':'必填參數未填,請查看接口文檔!'} 79 return json.dumps(data,ensure_ascii=False)