Django rest framework与django写的网站共用一个数据库,同时让rest framework生成api,

本文介绍了如何在Django项目中使用Rest Framework,使二者共享同一数据库,并详细阐述了创建API的关键步骤,包括在settings.py中添加应用,创建serializers.py,修改views.py和URL配置,以及如何测试API。通过这种方式,可以同时通过HTTP和API访问后台数据。
摘要由CSDN通过智能技术生成

1.按照之前的方法创建Django项目

在settings.py中的INSTALLED_APPS中添加'rest_framework'
其中创建模型中的models.py

from django.db import models

# Create your models here.
class Post(models.Model):
	title = models.CharField(max_length=200)
	author = models.CharField(max_length=50)

	def __str__(self):
		return self.title

2.关键步骤:

(1)在mainsite中创建一个新的模块serializers.py

from .models import Post
from rest_framework import serializers


class PostSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Post
        fields = ('title', 'author')

修改视图views.py

#from rest_framework.response import Response
#from rest_framework.views import APIView
from rest_framework import viewsets
from .models import Post
from .serializers import PostSerializer 

# Create your views here.
"""
class PostView(APIView):
    def get(self, request):
        Post_list = Post.objects.all()
        serializer = PostSerializer(Post_list, many=True)
 
        return Response(serializer.data)
"""

class PostViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """
    queryset = Post.objects.all()
    serializer_class = PostSerializer

组织API URLS,在restdemo/urls.py中

from django.contrib import admin
from rest_framework import routers
from mainsite import views
from django.urls import include, path

#add these line
router = routers.DefaultRouter()
router.register(r'posts', views.PostViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
  	#path('posts/', views.PostView.as_view())
  	path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

上述views.py和urls.py中注释掉的是中配置API URLS的方法。

最终测试我们的API

python manage.py runserver

直接通过浏览器访问http://xxx.xxx.x.xx:8000/posts/
在这里插入图片描述
这样既可以通过http://xxx.xxx.x.xx:8000/admin直接访问后台管理系统,也可以通过api访问后台数据,用的是同一数据库

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值