日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何借助Django來編寫一個(gè)PythonWebAPI

Django 是 Python API 開發(fā)中最流行的框架之一,在這個(gè)教程中,我們來學(xué)習(xí)如何使用它。

成都創(chuàng)新互聯(lián)公司是專業(yè)的和碩網(wǎng)站建設(shè)公司,和碩接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行和碩網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

Django 所有 Web 框架中最全面的,也是最受歡迎的一個(gè)。自 2005 年以來,其流行度大幅上升。

Django 是由 Django 軟件基金會(huì)維護(hù),并且獲得了社區(qū)的大力支持,在全球擁有超過 11,600 名成員。在 Stack Overflow 上,約有 191,000 個(gè)帶 Django 標(biāo)簽的問題。Spotify、YouTube 和 Instagram 等都使用 Django 來構(gòu)建應(yīng)用程序和數(shù)據(jù)管理。

本文演示了一個(gè)簡單的 API,通過它可以使用 HTTP 協(xié)議的 GET 方法來從服務(wù)器獲取數(shù)據(jù)。

構(gòu)建一個(gè)項(xiàng)目

首先,為你的 Django 應(yīng)用程序創(chuàng)建一個(gè)目錄結(jié)構(gòu),你可以在系統(tǒng)的任何位置創(chuàng)建:

 
 
 
 
  1. $ mkdir myproject
  2. $ cd myproject

然后,在項(xiàng)目目錄中創(chuàng)建一個(gè)虛擬環(huán)境來隔離本地包依賴關(guān)系:

 
 
 
 
  1. $ python3 -m venv env
  2. $ source env/bin/activate

在 Windows 上,使用命令 env\Scripts\activate 來激活虛擬環(huán)境。

安裝 Django 和 Django REST framework

然后,安裝 Django 和 Django REST 模塊:

 
 
 
 
  1. $ pip3 install django
  2. $ pip3 install djangorestframework

實(shí)例化一個(gè)新的 Django 項(xiàng)目

現(xiàn)在你的應(yīng)用程序已經(jīng)有了一個(gè)工作環(huán)境,你必須實(shí)例化一個(gè)新的 Django 項(xiàng)目。與 Flask 這樣微框架不同的是,Django 有專門的命令來創(chuàng)建(注意第一條命令后的 . 字符)。

 
 
 
 
  1. $ django-admin startproject tutorial .
  2. $ cd tutorial
  3. $ django-admin startapp quickstart

Django 使用數(shù)據(jù)庫來管理后端,所以你應(yīng)該在開始開發(fā)之前同步數(shù)據(jù)庫,數(shù)據(jù)庫可以通過 manage.py 腳本管理,它是在你運(yùn)行 django-admin 命令時(shí)創(chuàng)建的。因?yàn)槟悻F(xiàn)在在 tutorial 目錄,所以使用 ../ 符號(hào)來運(yùn)行腳本,它位于上一層目錄:

 
 
 
 
  1. $ python3 ../manage.py makemigrations
  2. No changes detected
  3. $ python4 ../manage.py migrate
  4. Operations to perform:
  5. Apply all migrations: admin, auth, contenttypes, sessions
  6. Running migrations:
  7. Applying contenttypes.0001_initial... OK
  8. Applying auth.0001_initial... OK
  9. Applying admin.0001_initial... OK
  10. Applying admin.0002_logentry_remove_auto_add... OK
  11. Applying admin.0003_logentry_add_action_flag_choices... OK
  12. Applying contenttypes.0002_remove_content_type_name... OK
  13. Applying auth.0002_alter_permission_name_max_length... OK
  14. Applying auth.0003_alter_user_email_max_length... OK
  15. Applying auth.0004_alter_user_username_opts... OK
  16. Applying auth.0005_alter_user_last_login_null... OK
  17. Applying auth.0006_require_contenttypes_0002... OK
  18. Applying auth.0007_alter_validators_add_error_messages... OK
  19. Applying auth.0008_alter_user_username_max_length... OK
  20. Applying auth.0009_alter_user_last_name_max_length... OK
  21. Applying auth.0010_alter_group_name_max_length... OK
  22. Applying auth.0011_update_proxy_permissions... OK
  23. Applying sessions.0001_initial... OK

在 Django 中創(chuàng)建用戶

創(chuàng)建一個(gè)名為 admin,示例密碼為 password123 的初始用戶:

 
 
 
 
  1. $ python3 ../manage.py createsuperuser \
  2. --email admin@cdxwcx.com \
  3. --username admin

在提示時(shí)創(chuàng)建密碼。

在 Django 中實(shí)現(xiàn)序列化和視圖

為了使 Django 能夠?qū)⑿畔鬟f給 HTTP GET 請求,必須將信息對象轉(zhuǎn)化為有效的響應(yīng)數(shù)據(jù)。Django 為此實(shí)現(xiàn)了“序列化類” serializers。

在你的項(xiàng)目中,創(chuàng)建一個(gè)名為 quickstart/serializers.py 的新模塊,使用它來定義一些序列化器,模塊將用于數(shù)據(jù)展示:

 
 
 
 
  1. from django.contrib.auth.models import User, Group
  2. from rest_framework import serializers
  3. class UserSerializer(serializers.HyperlinkedModelSerializer):
  4. class Meta:
  5. model = User
  6. fields = ['url', 'username', 'email', 'groups']
  7. class GroupSerializer(serializers.HyperlinkedModelSerializer):
  8. class Meta:
  9. model = Group
  10. fields = ['url', 'name']

Django 中的視圖是一個(gè)接受 Web 請求并返回 Web 響應(yīng)的函數(shù)。響應(yīng)可以是 HTML、HTTP 重定向、HTTP 錯(cuò)誤、JSON 或 XML 文檔、圖像或 TAR 文件,或者可以是從 Internet 獲得的任何其他內(nèi)容。要?jiǎng)?chuàng)建視圖,打開 quickstart/views.py 并輸入以下代碼。該文件已經(jīng)存在,并且其中包含一些示例文本,保留這些文本并將以下代碼添加到文件中:

 
 
 
 
  1. from django.contrib.auth.models import User, Group
  2. from rest_framework import viewsets
  3. from tutorial.quickstart.serializers import UserSerializer, GroupSerializer
  4. class UserViewSet(viewsets.ModelViewSet):
  5. """
  6. API 允許查看或編輯用戶
  7. """
  8. queryset = User.objects.all().order_by('-date_joined')
  9. serializer_class = UserSerializer
  10. class GroupViewSet(viewsets.ModelViewSet):
  11. """
  12. API 允許查看或編輯組
  13. """
  14. queryset = Group.objects.all()
  15. serializer_class = GroupSerializer

使用 Django 生成 URL

現(xiàn)在,你可以生成 URL 以便人們可以訪問你剛起步的 API。在文本編輯器中打開 urls.py 并將默認(rèn)示例代碼替換為以下代碼:

 
 
 
 
  1. from django.urls import include, path
  2. from rest_framework import routers
  3. from tutorial.quickstart import views
  4. router = routers.DefaultRouter()
  5. router.register(r'users', views.UserViewSet)
  6. router.register(r'groups', views.GroupViewSet)
  7. # 使用自動(dòng)路由 URL
  8. # 還有登錄 URL
  9. urlpatterns = [
  10. path('', include(router.urls)),
  11. path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
  12. ]

調(diào)整你的 Django 項(xiàng)目設(shè)置

這個(gè)示例項(xiàng)目的設(shè)置模塊存儲(chǔ)在 tutorial/settings.py 中,因此在文本編輯器中將其打開,然后在 INSTALLED_APPS 列表的末尾添加 rest_framework

 
 
 
 
  1. INSTALLED_APPS = [
  2. ...
  3. 'rest_framework',
  4. ]

測試 Django API

現(xiàn)在,你可以測試構(gòu)建的 API。首先,從命令行啟動(dòng)內(nèi)置服務(wù)器:

 
 
 
 
  1. $ python3 manage.py runserver

你可以通過使用 curl 導(dǎo)航至 URL http://localhost:8000/users 來訪問 API:

 
 
 
 
  1. $ curl --get http://localhost:8000/users/?format=json
  2. [{"url":"http://localhost:8000/users/1/?format=json","username":"admin","email":"admin@cdxwcx.com","groups":[]}]

使用 Firefox 或你選擇的開源瀏覽器:

一個(gè)簡單的 Django API

有關(guān)使用 Django 和 Python 的 RESTful API 的更多深入知識(shí),參考出色的 Django 文檔。

為什么要使用 Djago?

Django 的主要優(yōu)點(diǎn):

  1. Django 社區(qū)的規(guī)模正在不斷擴(kuò)大,因此即使你做一個(gè)復(fù)雜項(xiàng)目,也會(huì)有大量的指導(dǎo)資源。
  2. 默認(rèn)包含模板、路由、表單、身份驗(yàn)證和管理工具等功能,你不必尋找外部工具,也不必?fù)?dān)心第三方工具會(huì)引入兼容性問題。
  3. 用戶、循環(huán)和條件的簡單結(jié)構(gòu)使你可以專注于編寫代碼。
  4. 這是一個(gè)成熟且經(jīng)過優(yōu)化的框架,它非??焖偾铱煽俊?/li>

Django 的主要缺點(diǎn):

  1. Django 很復(fù)雜!從開發(fā)人員視角的角度來看,它可能比簡單的框架更難學(xué)。
  2. Django 有一個(gè)很大的生態(tài)系統(tǒng)。一旦你熟悉它,這會(huì)很棒,但是當(dāng)你深入學(xué)習(xí)時(shí),它可能會(huì)令人感到無所適從。

對你的應(yīng)用程序或 API 來說,Django 是絕佳選擇。下載并熟悉它,開始開發(fā)一個(gè)迷人的項(xiàng)目!


當(dāng)前標(biāo)題:如何借助Django來編寫一個(gè)PythonWebAPI
網(wǎng)址分享:http://m.5511xx.com/article/cdgsdji.html