Python学习笔记:7.5.3 Django快速建站 - Web开发实战API1

前言:本文是学习网易微专业的《python全栈工程师 - Django快速建站》课程的笔记,欢迎学习交流。同时感谢老师们的精彩传授!

一、课程目标

  • 理解API概念
  • 初步了解Django REST framework的应用

二、详情解读

2.1.API
2.1.1.名词解释
  • 接口:
    – 泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。
    – 硬件类接口:是指同一计算机不同功能层之间的通信规则称为接口。
    – 软件类接口:是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某引起操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。

  • API,Application Programming Intergace:应用程序接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而不是需访问原码,或理解内部工作机制的细节。

2.1.2.API举例
  • GET:https://api.github.com/users/qiwsir
    – 调试方法1:用网页请求
    – 调试方法2:用python中的requests
    – 调试方法3(工程方法):用专用工具postman(https://www.getpostman.com/)

方法一访问结果:
Python学习笔记:7.5.3 Django快速建站 - Web开发实战API1_第1张图片
方法三访问结果:
Python学习笔记:7.5.3 Django快速建站 - Web开发实战API1_第2张图片

2.2.Django项目的API
2.2.1.创建项目
  • 创建虚拟环境
python3 -m venv djapi
cd djapi
source ./bin/activate  # 启动
  • 安装Django(先用2.2版本的,3版本的稳定后再用)
pip install django==2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 创建项目
django-admin startproject blog
  • 同步数据库
python manage.py migrate
  • 创建超级管理员
python manage.py createsuperuser
  • 运行项目
python manage.py runserver
  • 访问:http://localhost:8000/admin
2.2.2.Django REST framework
  • 网站: https://www.django-rest-framework.org/
    Django REST framework is a powerful and flexible toolkit for building Web APIs
    – 其他 html 页面
  • 安装
pip install djangorestframework
pip install markdown # Markdown support for the browsable API.
pip install django-filter # Filtering support
2.2.3.配置
  • 创建应用: python manage.py startapp siteusers
  • blog/settings.py
INSTALLED_APPS = [
	......
	'rest_framework',
	'siteusers',
]
  • blog/urls.py
from django.urls import path, include

urlpatterns = [
	......
	path('api/v1/', include('siteusers.urls')),
]
2.2.4.API
  • siteusers下创建目录api
    serializers.py
    views.py
  • 创建siteusers/urls.py

serializers.py文件代码如下:

from django.contrib.auth.models import User, Group
from rest_framework import serializers

class UserSerializer(serializers.HyperlinkedModelSerializer):
	class Meta:
		model = User
		fields = ['username', 'email']

views.py文件代码如下:

from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from siteusers.api.serializers import UserSerializer

class UserViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited
    """
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer

urls.py文件代码如下:

from django.urls import path, include
from rest_framework import routers
from siteusers.api import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)

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

访问地址:http://127.0.0.1:8000/api/v1/users/
Python学习笔记:7.5.3 Django快速建站 - Web开发实战API1_第3张图片
下面用postman测试users接口:
查询用户列表api
Python学习笔记:7.5.3 Django快速建站 - Web开发实战API1_第4张图片
查询指定用户api
Python学习笔记:7.5.3 Django快速建站 - Web开发实战API1_第5张图片

三、课程小结

  • 初步了解接口概念
  • 初步了解django REST framework

你可能感兴趣的:(Python全栈工程师学习笔记)