Django前后端分離

Home - Django REST framework (django-rest-framework.org)

新建app

例如新建一個books app

$ python3 manage.py startapp books

可能需要修改settings.py文件

INSTALLED_APPS = [
    # ...
    'books.apps.BooksConfig',
]

安裝RestFramework

$ pip install django-rest-framework

修改配置文件

修改settings.py文件

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

添加路由

打開settings.py文件同目錄下的urls.py文件并修改

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('books/', include('book.urls')),
] 

編寫模型類

books/models.py文件中編寫Books模型類

from django.db import models

class Books(models.Model):
    name = models.CharField(max_length=30)
    author = models.CharField(max_length=30, blank=True, null=True)

編寫序列化器

books目錄下創(chuàng)建serializer.py文件,編寫BooksSerializer序列化器

from rest_framework import serializers
from .models import Books

class BooksSerializer(serializers.ModelSerializer):
    class Meta:
        model = Books
        fields = '__all__'

編寫視圖類

books/views.py文件中編寫BooksViewSet視圖集

# books/views.py
from rest_framework import viewsets

from .models import Books
from .serializer import BooksSerializer

class BooksViewSet(viewsets.ModelViewSet):
    queryset = Books.objects.all()
    serializer_class = BooksSerializer

編寫子路由

打開books/urls.py文件并編輯

from django.urls import path, include
from rest_framework.routers import DefaultRouter

from .views import BooksViewSet

router = DefaultRouter()
router.register('books', BooksViewSet)

urlpatterns = [
    path('', include(router.urls)),
]

遷移數(shù)據(jù)庫

$ python manage.py makemigrations
$ python manage.py migrate

打開鏈接localhost:8000/books/books

處理跨域問題

安裝模塊

$ pip install django-cors-headers

修改settings.py文件

INSTALLED_APPS = [
    # ...
    'corsheaders',
    # ...
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    # ...
]

# 跨域配置
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True 
最后編輯于
?著作權(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)容

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