程序分目录:
bin — 启动文件
start.py
conf — 配置文件
setting.py
lib — 工具类、初始化服务类、各业务模块.....
tools.py、service.py、 user.py、pay.py ......
logs — 日志文件
setting.py
#mysql配置信息 放在一个字典中 mysql_info={ 'host':'118.24.3.00', 'port':3306, 'user':'xxxx', 'password':'xxxxxx', 'db':'xxxx', 'charset':'utf8', 'autocommit':True } server_info={ 'host':'0.0.0.0', 'port':5000, #端口号 'debug':True #是否为调试模式 }
在tools.py文件中导入setting.py中的配置信息
import pymysql from my_api.conf.setting import mysql_info #mysql_info 是一个字典 def my_db(sql): conn =pymysql.connect(**mysql_info) #**mysql_info调用setting.py中的字典 cur=conn.cursor(cursor=pymysql.cursors.DictCursor) #返回数据为字典格式 cur.execute(sql) res =cur.fetchall() cur.close() conn.close() return res
service.py 提供服务
import flask server = flask.Flask(__name__) #初始化服务
user.py 写对应的业务逻辑模块
from lib.service import server from lib.tools import my_db import flask,json @server.route('/get_table_data',methods=['post']) def get_table_data(): #获取某个表中的所有数据 table_name =flask.request.values.get('table_name') sql='select * from %s;'%table_name res =my_db(sql) return json.dumps(res,ensure_ascii=False)
start.py 程序启动文件
#将当前工程目录(my_api)加入到python环境变量,否则在别人电脑上无法运行 import os,sys res=os.path.abspath(__file__) #取当前文件的绝对路径 base_path=os.path.dirname(os.path.dirname(res)) #当前文件的上层目录(bin)的上层目录(my_api),即当前工程目录 sys.path.insert(0,base_path) #将当前工程目录(my_api)加入到python环境变量 # 以下这些导入必须写在添加环境变量的方法下面,否则会报找不到模块的错误 from lib.service import server from conf.setting import server_info from lib import user,user,pay,order #导入各个业务模块,如果不导入访问接口会报找不到接口的错误 (导入模块的实质就是将python文件执行一遍) #启动服务 server.run(**server_info)