python之代码规范
第一章 为什么要有规范化目录
真正的后端开发的项目,系统等,少则几万行代码,多则十几万,几十万行代码
软件开发,规范你的项目目录结构,代码规范,遵循PEP8规范等等,让你更加清晰,合理开发。
1.代码分类
 加载快
 可读性高
 查询修改方便
第二章 分析规范化目录
1.规划固定的路径
把文件路径换成常量,相当于读取数据库的地址

2.settings.py文件
配置文件

3.src.py主逻辑核心函数文件

4.common.py公共组建部分

5.start.py文件

6.register用户数据相关,多个文件
存放用户用户注册的文件
7.logging日志文件:记录用户的访问次数,用户的动态信息
8.README 记录项目是做什么的
第三章 实战演练

start.py文件
import sys
import os
#获取项目的主目录
# BASE_PATH =os.path.dirname(os.path.dirname(__file__))
BASE_PATH= "../../博客园"
sys.path.append(BASE_PATH)
from core.src import run
if __name__ == '__main__':
    run()
settings.py文件
import os
# BASE_PATH = os.path.dirname(os.path.dirname(__file__))
REGISTER_PATH = os.path.join("../", 'db', 'register')
LOG_PATH = os.path.join("../", 'log', 'access.log')
src.py文件
from conf import settings
from lib import common
msg = """
1.请登录
2.请注册
3.进入文章页面
4.进入评论页面
5.进入日记页面
6.进入收藏页面
7.注销账号
8.退出整个程序
>>>
"""
login_dic = {
    "username":None,
    "flag":False,
    "count":3
}
def register():
    name = input("请输入要注册的用户名")
    pwd = input("请输入密码")
    with open(settings.REGISTER_PATH, "a", encoding="utf-8") as f:
        if name.isalnum() and 6 < len(pwd) < 14:
            with  open(settings.REGISTER_PATH, "a+", encoding="utf-8") as f:
                f.seek(0)
                for i in f:
                    if name in i.strip().split(":"):
                        print("用户名已存在")
                        break
                else:
                    print("注册成功")
                    f.write(f"{name}:{pwd}\n")
        else:
            print("用户名或密码输入格式错误!")
    return f"{name}"
def login(func=False):
    while login_dic["count"]:
        user = input("username:")
        pwd = input("password:")
        with open(settings.REGISTER_PATH, "r", encoding="utf-8") as u:
            for i in u:
                k, v = i.strip().split(":")
                if user == k and pwd == v:
                    login_dic["username"] = user
                    login_dic["flag"] = True
                    login_dic["count"] = 0
                    print("登录成功!")
                    if func:
                        func()
                else:
                    login_dic["count"] -= 1
                    print(f"用户名或密码错误!剩余次数{login_dic['count']}")
                    common.logger.warning('logger warning message')
@common.auth
def article():
    print("这是文章")
@common.auth
def comment():
    print("这是评论")
@common.auth
def log():
    print("这是日记")
@common.auth
def collect():
    print("这是收藏")
@common.auth
def out():
    login_dic["username"] = None
    login_dic["flag"] = False
    print("退出成功!")
func_dic = {
    "1":login,
    "2":register,
    "3":article,
    "4":comment,
    "5":log,
    "6":collect,
    "7":out,
    "8":exit,
}
def run():
    while True:
        chose = input(msg)
        if chose in func_dic:
            login_dic["count"] = 3
            func_dic[chose]()
        else:
            print("请正确输入内容!")
common.py
from core import src
from conf import settings
def auth(func):
    def inner(*args,**kwargs):
        if src.login_dic["flag"]:
            func()
        else:
            src.login(func)
    return inner
import logging
logger = logging.getLogger()
# 创建一个logger
fh = logging.FileHandler(settings.LOG_PATH,mode="a",encoding='utf-8')   # 文件
ch = logging.StreamHandler()   # 屏幕
formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s - [line:%(lineno)d] -  %(levelname)s - %(message)s')
# 将屏幕和文件都是用以上格式
logger.setLevel(logging.DEBUG)
# 设置记录级别
fh.setFormatter(formatter)
# 使用自定义的格式化内容
ch.setFormatter(formatter)
logger.addHandler(fh) #logger对象可以添加多个fh和ch对象
logger.addHandler(ch) #打印在屏幕上
python之代码规范的更多相关文章
- Python pep8代码规范
		title: Python pep8代码规范 tags: Python --- 介绍(Introduction) 官方文档:PEP 8 -- Style Guide for Python Code 很 ... 
- python PEP8代码规范及问题
		最近刚刚接触Python,为了养成好习惯,尽量保证自己写的代码符合PEP8代码规范,下面是过程中报出的警告及解决方法,英文有些翻译不太准确见谅,会不断更新: PEP 8: module level i ... 
- python初学者-代码规范
		一.编程规范 1.缩进(代码块) 类定义.函数定义.选择结构.循环结构.with块.行尾的冒号表示缩进的开始. python程序是依靠代码块的缩进来体现代码之间的逻辑关系,缩进结束就表示一个代码块结束 ... 
- 老李分享:pep8 python代码规范
		老李分享:pep8 python代码规范 什么是PEPPEP是 Python Enhancement Proposal 的缩写,翻译过来就是 Python增强建议书 . PEP8 译者:本文基于 20 ... 
- python代码规范与标准库参考
		python代码规范与标准库参考 python代码规范参考文献: http://www.runoob.com/w3cnote/google-python-styleguide.html https:/ ... 
- Python代码规范之---代码不规范,亲人两行泪
		任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步! 关于代码规范 Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档 其中第 8 篇 ... 
- Python代码规范(PEP8)问题及解决
		转载:https://blog.csdn.net/Jason_Lewis/article/details/75386598 最近刚刚接触Python,为了养成好习惯,尽量保证自己写的代码符合PEP8代 ... 
- python基础1 - 多文件项目和代码规范
		1. 多文件项目演练 开发 项目 就是开发一个 专门解决一个复杂业务功能的软件 通常每 一个项目 就具有一个 独立专属的目录,用于保存 所有和项目相关的文件 – 一个项目通常会包含 很多源文件 在 ... 
- python代码规范 自动优化工具Black
		自动优化工具Black 在众多代码格式化工具中,Black算是比较新的一个,它***的特点是可配置项比较少,个人认为这对于新手来说是件好事,因为我们不必过多考虑如何设置Black,让 Black 自己 ... 
随机推荐
- PDFtk:PDF文件处理
			造冰箱的大熊猫@cnblogs 2018/9/12 使用PDFtk很多年了,今天得空把相关内容整理总结一下. 1.PDFtk能干什么 - 是否想把两个PDF文档合并到一起 - 是否想从PDF文档中摘出 ... 
- Tomcat 激活spring profile
			springboot打包war部署到外部tomcat的时候指定profile启动 windows 在%tomcat%/bin下创建setenv.bat文件 linux 在%tomcat%/bin下创建 ... 
- python学习之路(8)
			定义函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_ ... 
- SQL中模糊查询的模式匹配
			SQL模糊查询的语法为: “Select column FROM table Where column LIKE 'pattern'”. SQL提供了四种匹配模式: 1. % 表示任意0个或多个字符. ... 
- 使用R进行方差分析
			eff=c(58.2,52.6,56.2,41.2,65.3,60.8,49.1,42.8,54.1,50.5,51.6,48.4,60.1,58.3,70.9,73.2,39.2,40.7,75.8 ... 
- LeetCode124----二叉树中最大路径和
			给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不需要经过根节点. 示例 1: 输入: [1,2,3] 1 / \ 2 ... 
- springboot 集成 druid mybatis-plus
			通过这篇配置成功: https://www.cnblogs.com/shine-rainbow/p/9618100.html 不过 mybatis 3.4.6 一直maven下载失败,于是直接在官方那 ... 
- python3笔记十:python数据类型-Tuple元组
			一:学习内容 元组概念 元组创建.访问.删除 元组操作 元组方法 二:元组概念 1.本质:是一种有序集合 2.特点:与列表非常相似.一旦初始化就不能修改.使用小括号 三:元组创建 1.创建空元组 tu ... 
- Android 6.0动态权限申请
			转载(Android 6.0 动态权限申请简单简洁优雅的处理方式): https://blog.csdn.net/lin_dianwei/article/details/79025324 
- leetcode-easy-trees-Maximum Depth of Binary Tree
			mycode 92.69% # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x ... 
