Skip to content

Jocx-H/rearend

Repository files navigation

[TOC]

rearend

暑假实训项目的后端部分。

功能实现

image-20210820144457307

待讨论。

运行环境

仅列出主要安装的库。

# Name                    Version                   Build  Channel
python                    3.7.11               h6244533_0    defaults
aiofiles                  0.7.0                    pypi_0    pypi
fastapi                   0.68.0                   pypi_0    pypi
PyMySQL                   1.0.2                    pypi_0    pypi
uvicorn                   0.15.0                   pypi_0    pypi

开发者须知

文件存放

  • api存放各功能模块需要调用的接口,即控制层。
  • assert存放静态资源。
  • dao存放与数据库有关的操作,即数据层。
  • service存放与数据处理、行为逻辑有关的操作,即逻辑层。
  • model存放自定义类等,即模型层。
  • img存放readme中使用到的图片。

代码规范

  • 使用pep8编码规范,vscode的话可以通过在setting.json文件中设置"python.formatting.provider": "autopep8"从而使默认的格式化文档风格为pep8,写完代码后保持格式化文档一下的习惯,下面说的是只靠格式化解决不了的问题。
  • 引入第三方库别用from ... import *,用import或者要用啥引啥,比如from PyQt5 import QWidget,引用自己写的模块视情况而定。尽量不要将所有的内容全引入了,这样会很臃肿。引入内容按照__字典序排列__。
  • 正式内容与引入内容间隔两行,类外函数两两间间隔两行,内类函数两两间间隔一行。

以下几点点均可以在编辑器中设置image-20210820151023689,修改可以参考https://www.cxyzjd.com/article/github_38851471/85268075(记得git的也要改,这是为了避免:https://github.com/cssmagic/blog/issues/22)。

  • 使用 4 空格缩进,禁用任何 TAB 符号(编辑器或者idle可以设置自动将tab转成空格)。

  • 源码文件使用 UTF-8 无 BOM 编码格式(UTF-8)

  • 总是使用 Unix \n 风格换行符(LF)

  • 在每一个 py 文件头,都添加如下内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 描述

函数规范

  • 函数名使用小写单词命名,多个单词之间用下划线连接,保护函数以下划线开头,私有函数以下双下划线开头(继承父类来的比如paintEvent来的就没办法了):
def demo_function():
	pass
def _private_function():
	pass

下面两点的语法可参考:https://docs.python.org/zh-cn/3/library/typing.html

  • 自定义函数要表明返回值类型(接口可以省了反正都是一样的)
def heihei(): -> None
    pass
def hah(): -> bool
    return True
  • 函数参数需要注明类型
def get_users(uname: str):
    return userService.getUserInfos(uname)
  • 函数的开头要写功能注释,并且给出参数解释,特殊情况下给出__返回值解释__和__示例__
def hhh():
    r"""balabala
    """
    pass

def hhh2(para_1: str, para_2: int):
    r"""
    balabala
    
    Args:
    	para_1(str): balabala
    				balabala
	    para_2(int): balabala
    """
    pass
  • 代码块中的注释可写可不写,但尽量写块注释而不是行注释:
# 我是块注释
pass
pass

pass # 我是行注释

文件命名规范

  • 文件和文件夹使用小写单词命名,多个单词之间用下划线连接:
demo_module
demo_do_something.py

类命名规范

  • 类名:(大驼峰原则)

每个单词的首字母大写,私有类以下划线开头,后面也是每个单词的首字母大写,多个单词拼接:

class DemoClass():
	pass
class _PrivateClass():
	pass

变量规范

  • 变量名:

    使用小写单词命名,多个单词之间用下划线连接:

demo_variable = "Hello Python"
  • 常量:

    使用大写单词命名,多个单词之间用下划线连接:

DEMO_CONSTANT = 100
  • 全局变量位置:

    在引入内容下方,正式内容上方。与引入内容间隔一行,与正式内容间隔两行

from somefile import something

file_path = "balabalabala"


def get():
    pass
  • 列表书写格式: 仅有单行数值可以在同一行表示,其他均需换行表示
list_1 = [1, 2, 3, 4]

list_2 = [
    "sdf", "sdf", "sdf"
]

list_3 = [
    [1, 1, 1, 1],
    [2, 2, 2, 2],
    [3, 3, 3, 3]
]
  • 字典书写格式: 内容均需要换行
dict_1 = {
    "key": value,
    "key_2": value
}

Github上传规则

多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

详见:https://www.liaoxuefeng.com/wiki/896043488029600/900375748016320

如果你不想你的工作被别人的push打扰,可以自己开一个分支,比如git branch lxh在上面提交,然后之后再将lxhmain合并。

About

for my summary trainning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages