文章目录
- 项目地址
- 一、django环境安装以及初识restful
- 1.1 安装python 3.10的虚拟环境
- 1.2 创建django工程文件
- 1.3 创建一个book app
- 1.4 序列化(Django JsonResponse)
- 1.4.1创建一个Models
- 1.4.2 创建django的超级用户admin
- 1.4.3 添加serializers.py生成序列化器
- 1.5 FBV创建视图
- 1.5.1 在app里创建django 视图
- 1.5.2创建app的urls路由
- 1.5.3 将app的路由注册到项目的路由
- 1.5.4 整体流程梳理
- 1.5.5 创建一个可以通过传递id来get/post
- 1.5.6 使用restful风格改写views
- 1.6 CBV
- 1.6.1 使用restful的APIView类来创建
- 二、Django restful组件研究
- 2.1 APIView的主要作用
- 2.1 序列化器serializer
- 2.1.1 创建一个Book模型类
- 2.1.2 设计book类的序列化器
- 2.1.3 设计view,get/post请求
- 2.1.4 将视图view添加到project路由里
- 2.1.5 项目结构
- 2.1.6 对单个对象进行操作
项目地址
- 教程作者:Codingstrade
- 教程地址:
https://www.CSDN.com/watch?v=z6WudaByH1k&t=120s
- 代码仓库地址:
- 所用到的框架和插件:
django
djangorestfui
- 插件
django
thunder client
sqlite view
一、django环境安装以及初识restful
1.1 安装python 3.10的虚拟环境
- pipenv 安装指定版本的python
pipenv --python 3.10
- 另外一种方法
python3.10 -m venv venv
- 运行虚拟环境
pipenv shell
- 另一种方法
.\venv\Scripts\activate
- 安装django
pipenv install django
- 安装所有的包
requirements.txt
django>=4.0.0,<4.1.0
djangorestframework
pyyaml
requests
django-cors-headers
- 安装
pip install -r requirements.txt
1.2 创建django工程文件
- 创建项目
myapi
是项目的名称
django-admin startproject myapi
-
查看文件
-
运行django,默认l
ocalhost:8000
py manage.py runserver
1.3 创建一个book app
- 控制台输入
py manage.py startapp book
-
成功后,文件夹目录
-
注册APP到django里
1.4 序列化(Django JsonResponse)
将数据库内容 转为python的格式
1.4.1创建一个Models
- 在
api/models.py
里创建
from django.db import models# Create your models here.
class Post(models.Model):title = models.CharField(max_length=120)author = models.CharField(max_length=120)email = models.EmailField( default='')
- 注册Models
python manage.py makemigrations
- 创建models表
python manage.py miggrate
res_api/admin.py
注册我们的Models
admin.site.register(Post)
1.4.2 创建django的超级用户admin
- 创建超级用户
python manage.py createsuperuser
- 创建完成之后登录到
http://127.0.0.1:8000/admin/
- 成功之后在post里添加一个用户,用于我们将来的测试
1.4.3 添加serializers.py生成序列化器
- 在
serializers.py
文件里添加
from rest_framework import serializers
from .models import Post class PostSerializer(serializers.ModelSerializer):class Meta:model = Postfields = ['title', 'author', 'email']
1.5 FBV创建视图
- 该模式下,不管是django原生,还是restful风格,都是函数式编程
1.5.1 在app里创建django 视图
- 创建
res_api/views.py
from django.shortcuts import render
from .models import Post
from .serializers import PostSerializer
from django.http import JsonResponse
from rest_framework.parsers import JSONParser
from django.views.decorators.csrf import csrf_exempt #测试postman使用# Create your views here.
@csrf_exempt
def PostsView(request):if request.method == 'GET':posts = Post.objects.all()serializer = PostSerializer(posts, many=True)return JsonResponse(serializer.data, safe=False)elif request.method == 'POST':post_data = JSONParser().parse(request)serializer = PostSerializer(data=post_data)if serializer.is_valid():serializer.save()return JsonResponse(serializer.data, status=201)return JsonResponse(serializer.errors, status=400)
1.5.2创建app的urls路由
1.创建res_api/urls.py
:注意,这里的只是app的路由 ,并不是项目的路由,
from django.urls import path
from .views import PostsViewurlpatterns = [path('posts/', PostsView)