咱們先選擇一個APP,好比說我選擇的是schools APP,如何在設計這個APP中設計一個API接口,且在前端請求的時候,返回數據庫中全部學校的詳細信息呢?html
url(r'^school/', include('schools.urls', namespace='schools'))
url(r'^all/$', AllSchoolsView.as_view(), name='all')
編寫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')
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,而後建立鏈接,再填寫一下選項就能夠了:前端
http://127.0.0.1:8000/schools/all/
;pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install django-filter # Filtering support
INSTALLED_APPS = ( 'rest_framework', )
url(r'^api-auth/', include('rest_framework.urls'))
第四步:建立Django的管理員,選擇Tool->Run manage.py Task
,而後執行createsuperuser
,編輯本身的用戶名、郵箱和密碼就能夠了;數據庫
第五步:在schools APP中建立serializer.py
文件,在這個文件中導入serializers模塊
,而後建立一個序列化類(本身命名),讓這個類繼承serializers模塊
下的Serializer類;django
from rest_framework import serializers class SchoolSerializer(serializers.Serializer): name = serializers.CharField() course_numbers = serializers.IntegerField()
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)
Navicat是一套可建立多個鏈接的數據庫管理工具,用以方便管理 MySQL、Oracle、 PostgreSQL、SQLite、SQL Server、MariaDB 和/或 MongoDB
等不一樣類型的數據庫,並 支持管理某些雲數據庫,例如阿里雲、騰訊雲;json
Navicat 提供了三種平臺的版本Windows、macOS 、Linux
,可讓用戶鏈接到本地或遠 程服務器,並提供一些實用的數據庫工具以協助用戶管理數據,包括 Navicat Cloud 協同合 做、數據建模、數據傳輸、數據同步、結構同步、導入、導出、備份、還原和自動運行;api
想了解更多用法能夠查看官網,官網地址:https://www.navicat.com/en/瀏覽器
參考:https://www.9xkd.com/user/plan-view.html?id=7558399250服務器