通常软件目录下有几个标准文件夹

软件主文件夹命名,通常都是大写(ATM_SHOPPING)

-------------------------------------------------------------------------

bin : 启动文件文件夹(整个软件的启动文件,也可直接写在根目录下省略这个文件夹)

conf : 软件配置文件(软件全局性的一些变量和参数)

core :用户层(就是一个功能的集合体文件,功能实现通过调用其他的模块)

db :数据层(数据处理动作模块,存储和调用,这个模块放lib文件夹内也可)

lib :接口模块文件夹(每一个功能的模块)

log :日志文件

Readme.txt 软件介绍的文本

---------------------------------------------------------------------------

bin :start.py  启动文件

import sys

import os

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #就是取执行文件的绝对路径,然后获取执行文件的目录赋值给一个变量

sys.path.append(BASE_DIR)

from core import src

src.run()

PS:调用sys和os模块,os模块下有个path模块下有个dirname模块和abspath模块,用abspath获取绝对路径,dirname就是取执行文件的目录,要让其他的模块能够获取这个模块内的数据,往前推几层能够到达项目根目录,那么取几次dirname即可

PS:有一个内置的全局变量是__file__,是当前执行文件的绝对路径

PS:sys模块下有一个path模块,指的是环境变量,将变量放入环境变量即可调用所有模块

conf : setting.py 配置文件

import os,logging

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #动态获取路径,获取当前文件的绝对路径,然后获取执行文件的目录,有几层目录写几次

file_path=r'%s\log\transaction.log' %BASE_DIR #这里将文件的路径以动态方式放入log_path变量以供其他文件调用

"""

logging配置 #日志管理模块,标准格式化写入日志文件

"""

logfile_path= r'%s\log\管理员日志.txt '%BASE_DIR

user_logfile_path = r'%s\user_log\用户日志.txt ' %BASE_DIR

standard_format = '%(asctime)s - %(threadName)s:%(thread)d - task_id:%(name)s - %(filename)s:%(lineno)d'\

'- %(levelname)s - %(message)s'

simple_format = '%(levelname)s - %(asctime)s - %(filename)s:%(lineno)d - %(message)s'

LOGGING_DIC = {

'version': 1,

'disable_existing_loggers': False,

'formatters': {

'standard': {

'format': standard_format

},

'simple': {

'format': simple_format

},

},

'filters': {},

'handlers': {

'console': {

'level': 'DEBUG',

'class': 'logging.StreamHandler',

'formatter': 'simple'

},

'default': {

'level': 'DEBUG',

'class': 'logging.FileHandler',

'formatter': 'standard',

'filename': logfile_path,

'encoding': 'utf-8',

},

'user_log': {

'level': 'INFO',

'class': 'logging.FileHandler',

'formatter': 'simple',

'filename': user_logfile_path,

'encoding': 'utf-8',

},

},

'loggers': {

'用户日志': {

'handlers': ['user_log'],

'level': 'INFO',

},

'管理员日志': {

'handlers': ['default', 'console'],

'level': 'DEBUG',

},

},

}

core : src.py 核心代码 (主要的业务功能,就是一些主功能)

func_dic={

'1':login,

'2':register,

'3':shopping,

'4':transfer,

'5':pay

}

def run():

while True:

print("""

0 退出

1 登录

2 注册

3 购物

4 转账

5 支付

""")

choice =input('请输入操作>>>: ').strip()

if choice == '0':break

if choice in func_dic:

func_dic[choice]()

else:

print('输出的指令不存在,请重新输入')

PS:就是一个首页的功能,软件相关功能所有的集合文件

db : 调用数据接口的模块

lib  : 自定义的模块

项目中共用的功能,主功能需要调用的功能等模块

common.py(可以将日志模块和装饰器写这个文件内)

import time

from conf import settings #从conf文件夹内导入setting模块

def logger(msg):

with open(r'%s' %settings.log_path, 'at', encoding='utf-8') as f: #直接获取setting模块内的日志变量

f.write('%s %s\n' % (time.strftime('%Y-%m-%d %H:%M:%S'),msg))

log : transaction.log(这个根据软件来命名,没有固定格式)

小常识:

(一)

日志功能需要调用时间模块

import time

写入时间功能:time.strftime('%y-%m-%d %H:%M:%S') #(这是固定格式)

(二)

项目文件夹放在顶级,建在顶级,就可以在导入模块的时候可以用tab补全,或者弹出提示

(三)

启动文件放在项目文件夹的根目录下,就无需处理环境变量,因为软件的根目录就是当前启动文件的文件夹(软件的环境变量都是以执行文件为准)

python软件开发文档目录_python学习之-软件开发的目录规范相关推荐

  1. 软件开发文档模板 (学习)

    1 可行性研究报告  可行性研究报告的编写目的是:说明该软件开发项目的实现在技术.经济和社会条件方面的可行性:评述为了合理地达到开发目标而可能先择的各种方案:说明论证所选定的方案.  可行性研究报告的 ...

  2. 开发文档模板_究竟什么样的开发流程是规范的?

    规范是死的,人是活的,希望自己定的规范,不要被打脸. 接下来从以上六个阶段进行逐一拆解. 1 需求评审 作为技术人员肯定都参加过需求评审会,不知道有没有遇到这样的情况? 产品经理按照 PRD 文档读一 ...

  3. python软件开发-如何编写Python软件开发文档(7个技巧)

    开发文档是经常被程序员忽略的工作,有时也会被管理者忽略.这往往是由于在项目生命周期结束的后期缺乏时间,以及人们认为自己不擅长写作,其中一些人确实写不好,但他们中的大多数能够完成一个良好的文档. 在任何 ...

  4. python开发软件的实例-如何编写Python软件开发文档(7个技巧)

    开发文档是经常被程序员忽略的工作,有时也会被管理者忽略.这往往是由于在项目生命周期结束的后期缺乏时间,以及人们认为自己不擅长写作,其中一些人确实写不好,但他们中的大多数能够完成一个良好的文档. 在任何 ...

  5. python写软件实例-如何编写Python软件开发文档(7个技巧)

    开发文档是经常被程序员忽略的工作,有时也会被管理者忽略.这往往是由于在项目生命周期结束的后期缺乏时间,以及人们认为自己不擅长写作,其中一些人确实写不好,但他们中的大多数能够完成一个良好的文档. 在任何 ...

  6. 软件开发文档整理(之)一张示意图 | 清晰明了

      在整个软件开发周期,开发文档是必不可少的资料,它们贯穿于整个开发周期,用来评估计划.规划进度.项目管理.软件测试.软件发布,可以说至关重要.   开发文档必须归档,没有归档的文档作用大打折扣,时效 ...

  7. 软件开发中常见英文缩写和各类软件开发文档的英文缩写

    软件开发中常见英文缩写和各类软件开发文档的英文缩写: 文章复制粘贴来源于:http://blog.sina.com.cn/s/blog_7326867a0100yfdl.html 英文简写 文档名称 ...

  8. 软件开发文档的价值和作用

    现代软件研发理念强调敏捷开发,快速迭代,高效地响应用户的需求变化.可以说,自从有了敏捷方法,有相当一部分程序员长出一口气:终于可以不用写文档了. 那么,事实真的如此吗,文档应不应该写,应该如何编写? ...

  9. python中文开发文档_pydoc (Development Tools) – Python 中文开发手册

    Python 中文开发手册 pydoc (Development Tools) - Python 中文开发手册 2.1版本中的新功能. 源代码: Lib / pydoc.py pydoc模块自动从Py ...

  10. Just enough(刚刚好)的软件开发文档什么样?

    在今年与多个软件开发单位的交流中,补文档的问题多次提到,试图通过本文谈谈文档的价值,如何写刚刚好的文档. 软件开发所需要的文档在传统的瀑布型生命周期下典型的有:开发计划,需求规格说明书,设计书(有分成 ...

最新文章

  1. C++学习手记四:继承和多态
  2. wifi密码破解与攻击
  3. 数据中心如何减少人为故障发生率
  4. 写给未来产品总监的一封信
  5. vue 得到枚举个数_Package - vue-enum
  6. 如何消除选定TextBox后的光标但又不失去焦点。
  7. 微服务学习之服务治理、服务注册与发现、Eureka【Hoxton.SR1版】
  8. Excel VBA编程
  9. 穷养的女孩和富养的女孩的区别在哪?
  10. 网站静态页面克隆 | 学习笔记
  11. 【关于测试开发工程师】
  12. 山东理工ACM 1000 A+B Problem
  13. 胶原蛋白市场爆发,德国vikki如何在市场异军突起?
  14. android 聊天气泡背景图片,关于实现微信聊天气泡里显示图片
  15. 汽车功能安全工程师必看!ISO 26262认证基本原理解析
  16. 【SAP】SAP FI,中英日专业名词对照表
  17. android获取键盘状态,Android获取屏幕方向及键盘状态的小例子
  18. PHP实现简单计算器
  19. 白话理解java多线程之setDaemon()方法
  20. 如何进行格式转化?几招帮你搞定格式转换

热门文章

  1. JVM学习01总体概述
  2. 清华物理化学97—13真题,部分是回忆版
  3. 科大星云诗社动态20210819
  4. java制作qq自动回复,求webqq自动回复原理好的实现方法。
  5. python桌面快捷图标_python 创建桌面快捷方式 | 学步园
  6. Windows下配置环境变量和需不需要重启?
  7. SQL SERVER视图
  8. asp.net ajax中文乱码的解决?2010-01-19 12:06
  9. Libevent学习环境搭建
  10. 磁盘调度 FCFS、SSTF、SCAN 算法c++实现(大学生专用)