python--程序分目录、加环境变量

程序分目录:

      

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)
原文地址:https://www.cnblogs.com/HathawayLee/p/9904454.html