트렌드 기술 Vue+Django REST 프레임워크 생선 전자상거래 프로젝트 만들기

5406 단어
트렌드 기술 Vue+Django REST 프레임워크 생선 전자상거래 프로젝트 만들기
 
1. Django REST 프레임워크 소개
  • Django REST 프레임워크 프레임워크는 기능이 강하고 유연한 도구 패키지로 웹 API를 구축하는 데 사용된다. 또한 Django Rest Framework는 Django가 Restful Api를 확장하는 프레임워크에 의존하고 Django의 사용 스타일과 유사하다. 그의 공식 사이트는 다음과 같다.https://www.django-rest-framework.org/

  • 2. 디자인 API
    우리는 먼저 하나의 앱을 선택한다. 예를 들어 내가 선택한 것은 schools 앱이다. 어떻게 이 앱을 디자인할 때 API 인터페이스를 설계하고 앞에서 요청할 때 데이터베이스에 있는 모든 학교의 상세한 정보를 되돌려줍니까?
  • 첫 번째 단계: 우선 프로젝트의urls가 필요합니다.py 파일(루트)에 2단계 루트 추가하기;
  •  url(r'^school/', include('schools.urls', namespace='schools'))
  • 2단계: schools APP에 있는 urls.py 파일에 경로를 추가하고 접근 경로를 지정하며 AllSchoolsView 클래스를 가져와야 합니다. AllSchoolsView 클래스는view에 있습니다.py 파일에서 작성 (makemigration과migrate 작업 수행 기억)
  • url(r'^all/$', AllSchoolsView.as_view(), name='all')
  • 3단계: schools APP에 있는views.py 파일 중 AllSchoolsView ;
  • from django.views.generic.base import View
    import json
    from django.core.serializers import serialize
    from django.http import HttpResponse, JsonResponse
    from .models import School
    
    class AllSchoolsView(View):
        def get(self, request):
            schools = School.objects.all()
            #         QuerySet     json    
            goods_json = serialize('json', schools)
            print(type(goods_json))
            print('serialize: --------{}'.format(goods_json))
            return HttpResponse(content=goods_json, content_type='application/json')
       : schools APP  models.py   ,      schools_school ;
    from django.db import models
    from datetime import datetime
    
    class School(models.Model):
        name = models.CharField(max_length=50, verbose_name='    ')
        desc = models.CharField(max_length=100, verbose_name='    ')
        location = models.CharField(max_length=100, verbose_name='    ')
        create_time = models.DateTimeField(default=datetime.now, verbose_name='    ')
        course_numbers = models.IntegerField(default=0, verbose_name="   ")
    

      
    데이터베이스 테이블을 만드는 데 앞의 글도 말했듯이 여기는 말하지 않겠다. 데이터베이스 테이블을 만든 후에 우리는 안에 데이터를 추가할 수 있고 명령행으로 추가할 수 있다. 그러나 이렇게 하면 비교적 번거롭다. 그래서 여기서 우리는 데이터베이스 관리와 디자인 도구인 Navicat(문장 마지막 소개)을 사용한다. 이 도구를 사용하면 데이터베이스 테이블의 데이터를 수동으로 추가할 수 있어 매우 편리하다.먼저 사용할 데이터베이스를 선택해야 합니다. 저는 MySql을 사용하고 연결을 만들고 옵션을 기입하면 됩니다.
  • 5단계: 데이터베이스에 schools 만들기school표의 데이터는 Navicat을 통해 데이터베이스를 조작할 수 있다. 마지막으로 우리의 데이터베이스는 다음과 같다.
  • 6단계: 프로젝트를 실행하면 우리가 원하는 json 데이터를 얻을 수 있습니다. 접근 경로는http://127.0.0.1:8000/schools/all/입니다.

  • 3. Django REST 프레임워크를 사용하여 Restful API 사용자 정의
  • 첫 번째 단계: 필요한 가방을 먼저 설치한다.
  • pip install djangorestframework
    pip install markdown       # Markdown support for the browsable API.
    pip install django-filter  # Filtering support
  • 2단계: 프로젝트의 settings 파일에 있는 INSTALLEDAPPS에 rest 추가framewor;
  • INSTALLED_APPS = (
        'rest_framework',
    )
  • 세 번째 단계: 루트에서urls.py에 브라우저 접근api 인증을 지원하는 루트를 추가합니다.
  • url(r'^api-auth/', include('rest_framework.urls'))
  • 네 번째 단계: Django를 만드는 관리자 Tool->Run manage.py Task, createsuperuser, 자신의 사용자 이름, 메일박스와 비밀번호를 편집하면 됩니다.
  • 다섯 번째 단계: schools APP에서 serializer.py 파일을 만들고 serializers 서열화 클래스(자신의 이름)를 만들어서 이 클래스가 serializers 아래의 Serializer 클래스를 계승하도록 한다.
  • from rest_framework import serializers
    class SchoolSerializer(serializers.Serializer):
        name = serializers.CharField()
        course_numbers = serializers.IntegerField()
    

      
  • 6단계: schools APP에 있는views.py 파일에서 AllSchoolsView 클래스를 다시 쓰면 서버를 다시 시작하면Django REST 프레임워크에서 되돌아오는 데이터를 얻을 수 있습니다.
  • from .models import School
    from rest_framework.views import APIView
    from rest_framework.response import Response
    from .serializer import SchoolSerializer
    
    class AllSchoolsView(APIView):
        def get(self, request):
            schools = School.objects.all()
            # many      list,      ,     
            schools_serializer = SchoolSerializer(schools, many=True)
            return Response(schools_serializer.data)
    

      
    4.Navicat
  • Navicat은 여러 개의 연결을 만들 수 있는 데이터베이스 관리 도구로 관리MySQL、Oracle、 PostgreSQL、SQLite、SQL Server、MariaDB / MongoDB 등 서로 다른 유형의 데이터베이스를 편리하게 하고 일부 클라우드 데이터베이스, 예를 들어 아리운, 텐센트운을 관리할 수 있다.
  • Navicat은 세 가지 플랫폼의 버전Windows、macOS 、Linux을 제공하여 사용자를 로컬 또는 원격 서버에 연결시키고 실용적인 데이터베이스 도구를 제공하여 사용자가 데이터를 관리하는 데 협조할 수 있다. 이는 Navicat Cloud의 협동 협력, 데이터 모델링, 데이터 전송, 데이터 전송, 데이터 동기화, 구조 동기화, 가져오기, 내보내기, 백업, 복원과 자동 운행을 포함한다.
  • 더 많은 사용법을 알고 싶으면 홈페이지, 홈페이지 주소:https://www.navicat.com/en/
  • 좋은 웹페이지 즐겨찾기