stark项目流程

1 创建Django项目

2 创建app

  python manage.py startapp app名

3 文件配置

  app配置

  静态文件配置

    创建文件夹,下载bootstrap,jquery 归档文件夹,

    文件下载参考:我的网址    

    补充:静态文件可创建在stark(app)下,可以不用配置静态文件?

  数据库配置:默认sqlite3

4 创建关系表

  1 创建表

  2 数据库迁移

    python manage.py makemigrations

    python manage.py migrate

  3 查看数据表:参考Django数据库----在Django中查看数据库

  

4 stark启动:

  1 对stark下apps.py文件进行配置

from django.apps import AppConfig
from django.utils.module_loading import autodiscover_modules

class StarkConfig(AppConfig):
    name = 'stark'
    def ready(self):
        autodiscover_modules('admin')
文件配置

  2 单例一个site:单例参考五种单例模式

class StarkModel:
    pass


# 单例site
class StarkSite(object):
    def __init__(self):
        """
        _registry:将所有表及所对应的配置类对象统一存放在字典中
        """
        self._registry={}  # registry:注册
    def register(self,model,stark_model=None):
        # 判断每张表有没有自定义的配置类对象
        if stark_model:
            stark_model = StarkModel
        self._registry[model] = stark_model(model)




site = StarkSite()
实例化site

  3 并且在每个app下创建stark.py文件

5 注册

  在每个app下创建stark.py文件中

  site.register(Book):即将所有表和所对应的模型类放在site._register对应的字典中 

class StarkSite(object):
    def __init__(self):
        """
        _registry:将所有表及所对应的配置类对象统一存放在字典中
        """
        self._registry={}  # registry:注册
    def register(self,model,stark_model=None):
        # 判断每张表有没有自定义的配置类对象
        if stark_model:
            stark_model = StarkModel
        self._registry[model] = stark_model(model)
View Code

6 设计url

   多级路由设计:参考Django多级路由设计

  

    # 设计url 1 --二级路由 
    @property
    def urls(self):
        
        return self.get_urls(), None, None
    # 设计url 2 --二级路由的路由列表 
    def get_urls(self):
        temp = []
        # for循环获取每张表对应的url
        # config_obj.urls获取每张表对应的增删改查url,及所对应的视图函数,方便视图函数调用
        for model,config_obj in self._registry.items():
            temp=[
                url(r'{}/{}'.format(model._meta.app_label,model._meta.model_form),config_obj.urls)
            ]
        return temp
原文地址:https://www.cnblogs.com/benson321/p/9582933.html