创建项目框架:
1.创建一个新的项目:shop_erp【商店管理系统】
在项目存放路径执行cmd指令:
django-admin startproject shop_erp
2.给这个shop_erp项目创建应用模块(app):shops【商店集】goods【货物】
这里的app和我们平时用的app有区别,平时:app–>应用软件,这里:app–>某个软件内的某个模块
在项目路径下执行cmd指令:
python manage.py startapp shops
python manage.py startapp goods
3.编辑项目shop_erp路径下的settings.py文件,在INSTALLED_APPS中配置好:
#为了便于上手使用,这里的rest_framework是指一个便于学习的框架【django rest framework】
INSTALLED_APPS = [
...
'rest_framework',
'shops',
'goods'
]
4.然后我们给这两个模块创建下初始的数据表单模型
[django框架对应app下面的model文件]
shops商店模块下的models内写入Bshop表单模型
from django.db import models
from django.contrib import admin
#创建表单模型
class Bshop(models.Model):
#标识属性
num = models.AutoField(verbose_name=u'序号',primary_key=True)
name = models.CharField(verbose_name=u'店名',max_length=100,blank=True)
#分类属性
where = models.CharField(verbose_name=u'店址',max_length=100,blank=True)
near = models.CharField(choices=(('A',u'购物中心'),('B',u'步行街'),('C',u'商业街'),('D',u'其他')),verbose_name=u'商圈',max_length=100,blank=True)
#系统参数
puttime = models.DateTimeField(verbose_name=u"录入",auto_now_add=True,blank=True) #记录录入时间
changetime=models.DateTimeField(verbose_name=u"修改",auto_now=True,blank=True) #记录修改时间
class Meta:
ordering = ['num'] #要上面有的,按照这个属性进行排序,加个负号为倒序
verbose_name = '门店表单' #表示要显示的应用模块的中文名
verbose_name_plural = verbose_name # 表示已经是复数形式不用再自动加S
goods商品模块下的models内写入Bgood表单模型
from django.db import models
from django.contrib import admin
#创建表单模型
class Bgood(models.Model):
#标识属性
goodnum = models.AutoField(verbose_name=u'序号',primary_key=True)
goodname = models.CharField(verbose_name=u'品名',max_length=100,blank=True)
#分类属性
style = models.CharField(verbose_name=u'款式',max_length=100,blank=True)
colour = models.CharField(verbose_name=u'颜色',max_length=100,blank=True)
size = models.CharField(verbose_name=u'尺码',max_length=100,blank=True)
money = models.CharField(verbose_name=u'价格',max_length=100,blank=True)
#系统参数
puttime = models.DateTimeField(verbose_name=u"录入",auto_now_add=True),blank=True #记录录入时间
changetime=models.DateTimeField(verbose_name=u"修改",auto_now=True,blank=True) #记录修改时间
class Meta:
ordering = ['goodnum'] #要上面有的,按照这个属性进行排序,加个负号为倒序
verbose_name = '商品表单' #表示要显示的应用模块的中文名
verbose_name_plural = verbose_name # 表示已经是复数形式不用再自动加S
5.然后分别在这两个models下面配置一下,以便于在浏览器的admin上进行测试:
shops/models.py
#在admin注册
@admin.register(Bshop)
class SiteAdminModel(admin.ModelAdmin):
"""
注册商品明细模型到admin
"""
# 添加分页
list_per_page = 50
# 列表页展示的字段
list_display = ('num','name','where','near','puttime','changetime')
# 搜索框
search_fields=('name',)
goods/models.py
#在admin注册
@admin.register(Bgood)
class SiteAdminModel(admin.ModelAdmin):
"""
注册商品明细模型到admin
"""
# 添加分页
list_per_page = 50
# 列表页展示的字段
list_display = ('goodnum','goodname','style','colour','size','money','puttime','changetime')
# 搜索框
search_fields=('goodname',)
6.在对应应用模块的__init__.py文件中写入,用来指定项目的别名
shops/init.py
from django.apps import AppConfig
import os
default_app_config = 'shops.shopsConfig' #项目名.apps里面的对应模块
# 获取apps所在文件夹名字,如果文件夹名字修改,这里可以动态调整
def get_current_app_name(_file):
return os.path.split(os.path.dirname(_file))[-1]
class shopsConfig(AppConfig): #需要修改名字的项目
# 这里apps所在文件夹名字直接固定,如果更改则也需要调整
# name = 'df_goods'
name = get_current_app_name(__file__)
verbose_name = '店铺明细'
goods/init.py
from django.apps import AppConfig
import os
default_app_config = 'goods.goodsConfig' #项目名.apps里面的对应模块
# 获取apps所在文件夹名字,如果文件夹名字修改,这里可以动态调整
def get_current_app_name(_file):
return os.path.split(os.path.dirname(_file))[-1]
class goodsConfig(AppConfig): #需要修改名字的项目
# 这里apps所在文件夹名字直接固定,如果更改则也需要调整
# name = 'df_goods'
name = get_current_app_name(__file__)
verbose_name = '商品明细'