前言:本文是学习网易微专业的《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/)
方法一访问结果:
方法三访问结果:
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/
下面用postman
测试users
接口:
查询用户列表api
:
查询指定用户api
:
三、课程小结
- 初步了解接口概念
- 初步了解
django REST framework