1、虚拟环境
1.1 创建虚拟环境
> python -m venv erp_venv
其中erp_venv 为虚拟环境的名字。
虚拟环境可以帮助隔离不同项目的依赖库,避免项目间的库版本冲突。
2.2 启动虚拟环境
进入虚拟环境目录
> cd erp_venv
> .\Scripts\activate
2.3 在虚拟环境中安装 debug_toolbar 、django_extensions 等库
> pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
requirements.txt :
decorator==5.1.1
Django==4.2.3
django-debug-toolbar==4.1.0
django-extensions==3.2.3
django-filter==23.2
django-rest-framework==0.1.0
djangorestframework==3.14.0
drf-spectacular==0.26.3
2、搭建项目
2.1 新建一个名为 erp 的项目
> cd..
> django-admin startproject erp
2.2 在 apps 中,新建名为 data 的 app
> cd erp
> cd apps
> django-admin startapp data
2.3 在 apps 中,新建名为 purchase 的 app
> django-admin startapp purchase
3、运行项目
3.1 配置app.py文件
name = "apps.data"
name = "apps.purchase"
3.2 配置 settings.py 文件
在INSTALLED_APPS中加入安装的库
'apps.data',
'apps.purchase',
'rest_framework',
'django_filters',
'drf_spectacular',
3.3 运行项目
> cd..
> python manage.py makemigrations
> python manage.py migrate
> python manage.py runserver
3.4 构建数据表并合并
以下代码来自https://github.com/Joe-2002/sweettalk-django4.2,稍有修改。
1. 创建产品分类和产品两个数据表
models.py
from django.db import models
class GoodsCategory(models.Model):
# 产品分类
name = models.CharField(max_length=64, verbose_name='名称')
remark = models.CharField(max_length=256, null=True, blank=True, verbose_name='备注')
class Goods(models.Model):
# 产品信息
number = models.CharField(max_length=32, verbose_name='编号')
name = models.CharField(max_length=64, verbose_name='名称')
barcode = models.CharField(max_length=32, null=True, blank=True, verbose_name='条码')
category = models.ForeignKey('GoodsCategory', on_delete=models.SET_NULL, null=True,related_name='goods_set', verbose_name='产品分类')
spec = models.CharField(max_length=64, null=True, blank=True, verbose_name='规格')
shelf_life_days = models.IntegerField(null=True, verbose_name='保质期天数')
purchase_price = models.FloatField(default=0, verbose_name='采购价')
retail_price = models.FloatField(default=0, verbose_name='零售价')
remark = models.CharField(max_length=256, null=True, blank=True, verbose_name='备注')
2. 执行生成迁移脚本命令和迁移命令
python manage.py makemigrations
这个命令用于生成迁移脚本。更新模型文件后,运行该命令,Django会检测模型的改变,自动生成相应的迁移脚本,存储在`migrations/`目录下。通常来说,需针对每个应用运行一次该命令。
python manage.py migrate
这个命令用于将迁移脚本应用到数据库中。当更改模型文件后,需先通过`makemigrations`命令生成迁移脚本,然后运行该命令将这些脚本应用到数据库中。