- 以blog为例CRUD
- django
- django rest framework
- django cors headers
- vue
- step1 初始化项目
django-admin startproject backend
- step 2
cd backend
- step 3
python manage.py runserver
- step4 刷新浏览器
django-admin startapp blog
-
添加blog的Model,并添加一些初始数据
- 修改
blog/models.py
- 创建 model
- 修改
backend/settings.py
增加blog
再运行python manage.py makemigrations
INSTALLED_APPS = [ 'django.contrib.admin', ... 'blog', ]
- 运行
python manage.py migrate
- 运行
python manage.py shell
终端 键入from blog.models import Blog
- 手动添加数据
Blog.objects.create(title='b1',content='b1 content')
,Blog.objects.create(title='b2',content='b2 content')
Blog.objects.all()
创建完后exit()
退出 shell
- 修改
-
使用 restframework 来添加 serializer, viwewset,urls
- 官方文档https://www.django-rest-framework.org/
- 点这里快速开始 -> 官方文档
- 安装
restframework
到跟目录 第一层·backend· 下pip install djangorestframework
- 修改
backend/settings.py
增加rest_framework
- blog 目录下 新建
serializers.py
- 创建
viewset
修改blog/views.py
INSTALLED_APPS = [ ... 'rest_framework' 'blog', ]
- 添加
router
- 修改
urls.py
文件 注册到总路由。运行python manage.py runserver
再访问http://127.0.0.1:8000/api/blog
时可以看到blog页面
- 修改
-
设置 跨域 cors headers
- 安装
django-cors-headers
到跟目录 第一层·backend· 下pip install django-cors-headers
- 参考文献
- 添加到
setting
的app中
INSTALLED_APPS = ( ... 'corsheaders', ... )
- 添加中间件
MIDDLEWARE = [ # Or MIDDLEWARE_CLASSES on Django < 1.10 ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ... ]
- 安装
- vue cli
npm install @vue/cli -g
vue create frontend
npm run serve
- 修改核心组件
- 添加 axios http 请求组件
-
npm install axios --save
运行到这时的时候django 控制台抛了一个错cannot import name 'six' from 'django.utils'
我在这时 增加了requirements.txt
并运行pip3 install -r requirements.txt
把django版本降低到Django==2.1.4
- 添加 请求后端代码
├── backend # 后端
│ ├── backend # 后端
│ │ ├── urls.py # 页面url 和 接口url
│ │ ├── setting.py # 配置权限
│ ├── blog # 依赖包
│ │ │ ├── apps.py # 页机配置
│ │ │ ├── models.py # 复写setting.py 连接mySQL
│ │ │ ├── views.py # 处理python视图 和 http response 接口状态 和 结构返回 到 页面
│ │ │ └── serializers.py # 路由序列化
│ │ │
│ └── ├── requirements.txt # 依赖包
│ └── manage.py # 主模板文件
├── frontend # 前端项目主目录
│ ├── public #
│ ├── src # 页面
│ ├── package.json # 前端依赖包
│ └── .gitgnore #
└── README.md