Django rest+Vue前后端分离开发(一)项目初始化

安装相关配置

本次使用的版本为:python3.6,django 1.11

pip install djangorestframework
pip install markdown
pip install django-filter
pip install pillow    #图片处理

设置数据库引擎

#setting, database
'OPTIONS': { 'init_command': 'SET storage_engine=INNODB;' }

Django migrate原理:

1)生成migration文件(此时只是将models中的修改转换成数据库语言)

2)在migration表中检测文件是否已经操作(记录表,有操作的文件全都不执行)

3)对于未操作的文件,执行数据库操作。

如果要重新执行数据库迁移,需要先删除数据库文件,再清除记录表的记录,然后删除migration文件。


Xadmin的相关依赖包(配置略)

Django rest+Vue前后端分离开发(一)项目初始化_第1张图片


在setting中注册apps的另一种方式

'users.apps.UsersConfig',

独立使用models进行数据迁移

# -*- coding: utf-8 -*-
#独立使用django的model
import sys
import os

#初始化配置
pwd = os.path.dirname(os.path.realpath(__file__))   #获得当前的父目录
sys.path.append(pwd+"../") #将当前目录添加到sys中
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MxShop.settings") #设置setting文件

import django
django.setup()

#数据迁移
from goods.models import GoodsCategory
from db_tools.data.category_data import row_data

for lev1_cat in row_data:
    lev1_intance = GoodsCategory()
    lev1_intance.code = lev1_cat["code"]
    lev1_intance.name = lev1_cat["name"]
    lev1_intance.category_type = 1
    lev1_intance.save()

    for lev2_cat in lev1_cat["sub_categorys"]:
        lev2_intance = GoodsCategory()
        lev2_intance.code = lev2_cat["code"]
        lev2_intance.name = lev2_cat["name"]
        lev2_intance.category_type = 2
        lev2_intance.parent_category = lev1_intance
        lev2_intance.save()

        for lev3_cat in lev2_cat["sub_categorys"]:
            lev3_intance = GoodsCategory()
            lev3_intance.code = lev3_cat["code"]
            lev3_intance.name = lev3_cat["name"]
            lev3_intance.category_type = 3
            lev3_intance.parent_category = lev2_intance
            lev3_intance.save()

 

你可能感兴趣的:(Django)