码迷,mamicode.com
首页 > 编程语言 > 详细

【Python】学习笔记5-利用flask来mock接口

时间:2018-01-26 22:50:19      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:mys   支持   ...   file   利用   nbsp   imp   __name__   参数   

# 1、mock接口
# import flask #python的轻量级的开发框架
# # 接口,后台服务的开发
# # 在浏览器运行http://127.0.0.1:8080/get_user即可,或者其他访问接口的方式
# server = flask.Flask(__name__) #__name__当前文件名,把咱们这个app python当做一个server
# @server.route(‘/get_user‘,methods=[‘get‘,‘post‘]) #将下面函数变成一个接口
# def get_all_user():
# return ‘cm的接口‘ #return只能返回字符串
# #启动服务,加debug自动帮忙重启
# server.run(port = 8080,debug = True)


# 2、调用自己的模块,连接数据库,浏览器请求接口
# import tools #使用时,需要用tools.op_mysql()
from lib.tools import op_mysql #使用时,直接用op_mysql()
# 以上两种方式都可以

3、写接口前先要形成标准的目录结构,分解一下各个目录的文件

技术分享图片

  4、start.py运行的启动程序,在这里启动 服务

 1 #这是程序的入口文件,将启动服务的命令放里面
 2 
 3 #增加根目录为环境变量,方便底层目录执行时目录错误
 4 import sys,os
 5 BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #取到api目录,根目录
 6 sys.path.insert(0,BASE_PATH)
 7 
 8 #加环境变量才能导入,否则导入会异常
 9 from lib.main  import server
10 server.run(port = 8080,host = 0.0.0.0,debug = True) #默认端口号是5000
11 #host = ‘0.0.0.0‘ 代表局域网内别人都可以通ip访问自己的接口

5、setting 设置常规变量等

1 MYSQL_HOST = X.X.X.X
2 PASSWORD = 123456
3 PORT = 3306
4 USER = jxz
5 DB = jxz

6、main.py......自己的主程序

 1 # import tools #使用时,需要用tools.op_mysql()
 2 from lib.tools import op_mysql  #使用时,直接用op_mysql()
 3 # 以上两种方式都可以
 4 
 5 import flask,json #python的轻量级的开发框架
 6 # 接口,后台服务的开发
 7 # 在浏览器运行http://127.0.0.1:8080/get_user即可,或者其他访问接口的方式
 8 server = flask.Flask(__name__) #__name__当前文件名,把咱们这个app python当做一个server
 9 
10 
11   #浏览器输出bt_stu表中前5条的数据
12 @server.route(/get_user,methods=[get,post]) #将下面函数变成一个接口
13 def get_all_user():
14     sql = select * from bt_stu limit 5;
15     res = op_mysql(sql = sql)
16     response = json.dumps(res,ensure_ascii=False)
17     return response #return只能返回字符串
18 
19 
20 # 浏览器输入用户id、姓名,插入数据到数据库stu表,
21 @server.route(/add_user,methods=[post]) #代码支持什么类型的接口
22 def add_user():
23     user_id = flask.request.values.get(id)
24     user_name = flask.request.values.get(u)
25     sql = "insert into stu values (‘%s‘,‘%s‘);"%(user_id,user_name)
26     if user_id and user_name:
27         res = op_mysql(sql = sql)
28         response = {"code":"308","message":"success"}
29     else:
30         response = {"code":"503","message":"参数不能为空"}
31     return json.dumps(response,ensure_ascii=False) #return只能返回字符串

7、tools工具类文件,相关的函数在这里面

 1 import pymysql
 2 from conf import setting
 3 
 4 # 1、操作mysql
 5 def op_mysql(sql):
 6     conn = pymysql.connect(host=setting.MYSQL_HOST,user= setting.USER,
 7                            password=setting.PASSWORD,
 8                            port=setting.PORT,
 9                            charset = utf8,
10                            db = setting.DB)
11     cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
12     #判断是否需要commit,根据select update delete insert的类型
13     cur.execute(sql)
14     sql_start = sql[:6].upper()# select不区分大小写,取前6位转换成大写
15     if sql_start == SELECT:
16         res = cur.fetchall()
17     else:
18         conn.commit()
19         res = ok
20     cur.close()
21     conn.close()
22     return res

【Python】学习笔记5-利用flask来mock接口

标签:mys   支持   ...   file   利用   nbsp   imp   __name__   参数   

原文地址:https://www.cnblogs.com/amengmeng/p/8361416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!