当前位置: 首页 > news >正文

django restful API


文章目录

  • 项目地址
  • 一、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 项目结构


项目地址

  • 教程作者:Codingstrade
  • 教程地址:
https://www.CSDN.com/watch?v=z6WudaByH1k&t=120s
  • 代码仓库地址:
  • 所用到的框架和插件:
django
djangorestfui
  • 插件
django 
thunder client
sqlite view

一、django环境安装以及初识restful

1.1 安装python 3.10的虚拟环境

  1. pipenv 安装指定版本的python
pipenv --python 3.10
  • 另外一种方法
python3.10 -m venv venv
  1. 运行虚拟环境
pipenv shell
  • 另一种方法
.\venv\Scripts\activate

在这里插入图片描述

  1. 安装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工程文件

  1. 创建项目myapi是项目的名称
django-admin startproject myapi
  1. 查看文件
    在这里插入图片描述

  2. 运行django,默认localhost:8000

py manage.py runserver 

在这里插入图片描述

1.3 创建一个book app

  1. 控制台输入
py manage.py startapp book 
  1. 成功后,文件夹目录
    在这里插入图片描述

  2. 注册APP到django里
    在这里插入图片描述

1.4 序列化(Django JsonResponse)

将数据库内容 转为python的格式

1.4.1创建一个Models

  1. 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='')
  1. 注册Models
python manage.py makemigrations
  1. 创建models表
python manage.py miggrate
  1. res_api/admin.py注册我们的Models
admin.site.register(Post)

1.4.2 创建django的超级用户admin

  1. 创建超级用户
python manage.py createsuperuser
  1. 创建完成之后登录到
http://127.0.0.1:8000/admin/

在这里插入图片描述

  1. 成功之后在post里添加一个用户,用于我们将来的测试

1.4.3 添加serializers.py生成序列化器

  1. 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 视图

  1. 创建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 

http://www.mrgr.cn/news/58185.html

相关文章:

  • 1GS/s 4通道14bit PCIE采集卡
  • 在 Spring 框架中,循环依赖是指两个或多个 Bean 之间相互依赖
  • 制作sdk
  • 一款开箱即用的中后台和前后端分离后台管理系统框架,支持PC端,小程序端(带私活源码)
  • ESP32移植Openharmony设备开发---(6)Mutex互斥锁
  • 使用 Git 命令将本地项目上传到 GitLab
  • 迅为RK3568开发板/核心板赋能数字广告,推动智能化新时代
  • axios退休了吗?现代Web开发的新请求策略
  • 企业如何配合好等级保护测评工作?
  • Vue组件学习 | 二、Vuex组件
  • HarmonyOS NEXT应用元服务开发控件位置调整场景与重新设置新焦点位置的场景
  • 【CUDA代码实践02】矩阵加法运算程序
  • GBase8a 审计管理
  • [ARM-2D 专题]4. 快速搭建ARM2D的PC仿真开发环境及避坑手法
  • 4PCS与Super4PCS算法原理介绍
  • JAVA学习-练习试用Java实现“接口 `Flyable` 和一个鸟类 `Bird` ”
  • 想进体制内?到底有哪些路可走?原来有这么多方法
  • opencv学习笔记(4):图像属性和基本图形绘制
  • P4735 最大异或和 题解
  • MES(制造执行系统)物料管理模块概述
  • Cursor零基础小白教程系列「高阶」 - Cursor 模型选择和API密钥配置
  • antv g6问题处理汇总
  • MySQL(python开发)——(10)Sql操作及优化
  • 智联引擎是什么?
  • 基于ssm+vue的房源管理系统设计与实现
  • 中国区 Microsoft365主页链接请您参考: