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()
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)
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