DRF使用記錄(一) 初體驗

drf使用記錄(一) drf初體驗

drf(Django REST framework)

在這里插入圖片描述

下面簡單體驗一下drf

需要的包
django
djangorestframework
pymysql
創(chuàng)建django項目

django-admin startproject drf_demo

settings.pyINSTALLED_APPS中添加'rest_framework'。

INSTALLED_APPS = [
    ...
    'rest_framework',
]
創(chuàng)建一個user應(yīng)用

python manage.py startapp user

user子應(yīng)用添加到INSTALL_APPS中

INSTALLED_APPS = [
    ...
    'rest_framework',
    'user',
]

drf_demo__init__.py中設(shè)置pymysql為數(shù)據(jù)庫驅(qū)動

import pymysql

pymysql.install_as_MySQLdb()
  • PS

pymysql適用于Django2.2之前,2.2之后的推薦使用mysqlclient,否則就要修改部分源碼

pip install mysqlclient

drf_demo__init__.py就這樣設(shè)置

# django2.2以后
import MySQLdb

settings.py中數(shù)據(jù)庫相關(guān)配置

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # },
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "drf_demo",
        "HOST": "127.0.0.1",
        "PORT": 3306,
        "USER": "root",
        "PASSWORD":"123456",
    },
}
創(chuàng)建模型操作類
from django.db import models

# Create your models here.

class User(models.Model):
    # 模型字段
    name = models.CharField(max_length=10, verbose_name="姓名")
    sex = models.BooleanField(default=1, verbose_name="性別")
    age = models.IntegerField(verbose_name="年齡")
    phone = models.CharField(max_length=20, null=True, verbose_name="電話")
    addr = models.CharField(max_length=100,null=True,verbose_name="地址")

    class Meta:
        db_table = "tb_user"
        verbose_name = "用戶"
        verbose_name_plural = verbose_name

創(chuàng)建數(shù)據(jù)庫

create database drf_demo default charset=utf8;

模型遷移生成數(shù)據(jù)表格

python manage.py makemigrations

python manage.py migrate

創(chuàng)建序列化器

user應(yīng)用目錄中新建serializers.py用于保存該應(yīng)用的序列化器。

創(chuàng)建一個UserModelSerializer用于序列化與反序列化。

from rest_framework import serializers
from user.models import User


# 創(chuàng)建序列化器類,視圖中被調(diào)用
class UserModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = "__all__"
編寫視圖

user應(yīng)用中的views.py

from rest_framework.viewsets import ModelViewSet
from .models import User
from .serializers import UserModelSerializer


class UserViewSet(ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserModelSerializer
  • queryset 指明該視圖集在查詢數(shù)據(jù)時使用的查詢集
  • serializer_class 指明該視圖在進行序列化或反序列化時使用的序列化器
定義路由

user應(yīng)用中創(chuàng)建一個urls.py

from . import views
from rest_framework.routers import DefaultRouter

# 路由列表
urlpatterns = []

router = DefaultRouter()  # 可以處理視圖的路由器
router.register('users', views.UserViewSet)  # 向路由器中注冊視圖集

urlpatterns += router.urls  # 將路由器中的所以路由信息追到到django的路由列表中
  • 總路由配置def_demo中的urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('user/', include('user.urls'))
]
運行測試

python manage.py runserver

  • 在瀏覽器中輸入網(wǎng)址127.0.0.1:8000/user,可以看到DRF提供的API Web瀏覽頁面:
在這里插入圖片描述
  • 點擊鏈接127.0.0.1:8000/user/users 可以訪問獲取所有數(shù)據(jù)的接口,呈現(xiàn)如下頁面:
  • 目前數(shù)據(jù)庫暫無數(shù)據(jù),可以用下面提供的post請求添加用戶
在這里插入圖片描述
  • 隨便創(chuàng)建的
在這里插入圖片描述
  • 在瀏覽器中輸入網(wǎng)址127.0.0.1:8000/user/users/3/,可以訪問獲取單一學生信息的接口(id為3的用戶),呈現(xiàn)如下頁面:
在這里插入圖片描述
  • 下面的PUT請求可以更新id為3的user信息
  • 上面DELETE請求可以刪除id為3的user信息

drf使用記錄(二) -序列化器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Python語言特性 1 Python的函數(shù)參數(shù)傳遞 看兩個如下例子,分析運行結(jié)果: 代碼一: a = 1 def...
    時光清淺03閱讀 556評論 0 0
  • Python語言特性 1 Python的函數(shù)參數(shù)傳遞 看兩個如下例子,分析運行結(jié)果: 代碼一: a = 1 def...
    伊森H閱讀 3,175評論 0 15
  • 點我查看本文集的說明及目錄。 本項目相關(guān)內(nèi)容包括: 實現(xiàn)過程: CH7 創(chuàng)建在線商店 CH8 管理支付和訂單 CH...
    學以致用123閱讀 3,858評論 0 6
  • drf使用記錄(二) - 序列化器 簡述 序列化:序列化器會把模型對象轉(zhuǎn)換成字典,經(jīng)過response以后變成js...
    憧憬001閱讀 760評論 0 0
  • 2年前拔過一顆智齒,因為它隱隱做痛。它長在上顎的右邊,長的時候感覺不到它的存在,疼的時候才知道厲害。只要咨詢醫(yī)生,...
    呼吸到他存在閱讀 150評論 0 0

友情鏈接更多精彩內(nèi)容