项目初次提交
This commit is contained in:
7
scripts/create_app/__init__.py
Normal file
7
scripts/create_app/__init__.py
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : 2022/12/9 15:26
|
||||
# @File : __init__.py
|
||||
# @IDE : PyCharm
|
||||
# @desc : 简要说明
|
95
scripts/create_app/main.py
Normal file
95
scripts/create_app/main.py
Normal file
@ -0,0 +1,95 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : 2022/12/9 15:27
|
||||
# @File : main.py
|
||||
# @IDE : PyCharm
|
||||
# @desc : 简要说明
|
||||
|
||||
import datetime
|
||||
import os.path
|
||||
from application.settings import BASE_DIR
|
||||
|
||||
|
||||
class CreateApp:
|
||||
|
||||
APPS_ROOT = os.path.join(BASE_DIR, "apps")
|
||||
SCRIPT_DIR = os.path.join(BASE_DIR, 'scripts', 'create_app')
|
||||
|
||||
def __init__(self, path: str):
|
||||
"""
|
||||
:param path: app 路径,根目录为apps,填写apps后面路径即可,例子:vadmin/auth
|
||||
"""
|
||||
self.app_path = os.path.join(self.APPS_ROOT, path)
|
||||
self.path = path
|
||||
|
||||
def run(self):
|
||||
"""
|
||||
自动创建初始化 APP 结构,如何该路径已经存在,则不执行
|
||||
"""
|
||||
if self.exist(self.app_path):
|
||||
print(f"{self.app_path} 已经存在,无法自动创建,请删除后,重新执行。")
|
||||
return False
|
||||
print("开始生成 App 目录:", self.path)
|
||||
path = []
|
||||
for item in self.path.split("/"):
|
||||
path.append(item)
|
||||
self.create_pag(os.path.join(self.APPS_ROOT, *path))
|
||||
self.create_pag(os.path.join(self.app_path, "models"))
|
||||
self.create_pag(os.path.join(self.app_path, "params"))
|
||||
self.create_pag(os.path.join(self.app_path, "schemas"))
|
||||
self.generate_file("views.py")
|
||||
self.generate_file("crud.py")
|
||||
print("App 目录生成结束", self.app_path)
|
||||
|
||||
def create_pag(self, path: str) -> None:
|
||||
"""
|
||||
创建 python 包
|
||||
|
||||
:param path: 绝对路径
|
||||
"""
|
||||
if self.exist(path):
|
||||
return
|
||||
os.makedirs(path)
|
||||
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
params = {
|
||||
"create_datetime": now,
|
||||
"filename": "__init__.py",
|
||||
"desc": "初始化文件"
|
||||
}
|
||||
self.create_file(os.path.join(path, "__init__.py"), "init.py", **params)
|
||||
|
||||
def generate_file(self, name: str) -> None:
|
||||
"""
|
||||
创建文件
|
||||
"""
|
||||
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
params = {
|
||||
"create_datetime": now,
|
||||
}
|
||||
self.create_file(os.path.join(self.app_path, name), name, **params)
|
||||
|
||||
def create_file(self, filepath: str, name: str, **kwargs):
|
||||
"""
|
||||
创建文件
|
||||
"""
|
||||
with open(filepath, "w", encoding="utf-8") as f:
|
||||
content = self.__get_template(name)
|
||||
f.write(content.format(**kwargs))
|
||||
|
||||
@classmethod
|
||||
def exist(cls, path) -> bool:
|
||||
"""
|
||||
判断路径是否已经存在
|
||||
"""
|
||||
return os.path.exists(path)
|
||||
|
||||
def __get_template(self, name: str) -> str:
|
||||
"""
|
||||
获取模板内容
|
||||
"""
|
||||
template = open(os.path.join(self.SCRIPT_DIR, "template", name), 'r')
|
||||
content = template.read()
|
||||
template.close()
|
||||
return content
|
||||
|
7
scripts/create_app/template/crud.py
Normal file
7
scripts/create_app/template/crud.py
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : {create_datetime}
|
||||
# @File : crud.py
|
||||
# @IDE : PyCharm
|
||||
# @desc :
|
7
scripts/create_app/template/init.py
Normal file
7
scripts/create_app/template/init.py
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : {create_datetime}
|
||||
# @File : {filename}
|
||||
# @IDE : PyCharm
|
||||
# @desc : {desc}
|
16
scripts/create_app/template/views.py
Normal file
16
scripts/create_app/template/views.py
Normal file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : {create_datetime}
|
||||
# @File : views.py
|
||||
# @IDE : PyCharm
|
||||
# @desc :
|
||||
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from utils.response import SuccessResponse
|
||||
from . import schemas, crud, models
|
||||
|
||||
app = APIRouter()
|
||||
|
||||
|
Reference in New Issue
Block a user