尝试使用Django REST框架的经历
首先
我对Django产生兴趣是因为有机会在项目中参与其中。
最近,通过参加研讨会,我的动力急剧提升了。
然而,我还没有将所学资料整理并没有得到实际产出,感到有些遗憾。
希望通过写下来并向他人解释,确认我所理解的是否足够深入。
环境
操作系统:mac os 高级版
Python:3.7
Django:Django-2.1.3
Django Rest Framework:Djangorestframework-3.9.0
目录
1.在虚拟环境中建立并安装所需的库。
2.创建Django项目。
3.创建Django应用程序。
4.在配置文件中添加额外应用程序。
5.创建模型。
6.构建数据库。
7.定义序列化器。
8.定义视图。
9.定义URL。
10.启动服务器。
11.确认。
12.评论。
1.建立虚拟环境并安装所需库。
我会创建一个虚拟环境。
在这个虚拟环境中,安装本应用所需的
软件包的影像。
这样一来,操作系统本身的环境就不会变得混乱。
python3 -m venv rest_api
当上述命令执行完成后,请用以下命令将虚拟环境激活。
(激活环境名为rest_api的虚拟环境)
source rest_api/bin/activate
当虚拟环境被激活后,环境名称将会显示在命令行的开头。
由于虚拟环境已处于激活状态,接下来将准备进行软件包的安装。
(rest_api) mac:
为了准备软件包的安装,需要更新用于管理软件包的软件。如果没有这个,就无法安装Django时会报错。
pip3 install --upgrade pip
然后,通过以下命令安装Django和Django Rest Framework。
pip3 install Django
pip3 install Djangorestframework
只要成功执行两者之一,安装就完成了。
2. 创建Django项目.
为了创建本次应用程序,我们将创建一个项目文件夹。
一旦创建了该项目文件夹,就可以进行整体的应用程序设置等管理。
以下是与教程等的创建方法不同,但我们选择将项目的配置文件放在名为config的文件夹中。
我正在创建一个名为“rest_pj”的项目。
mkdir rest_pj
cd rest_pj
django-admin startproject config .
当前目录状态
在下面有一个名为config的文件夹,这是项目的配置目录。

创建Django应用程序
接下来,我们将创建一个应用程序。
我们使用名为api的应用程序进行创建。
请参考以下当前文件夹层次结构。
django-admin startapp api
目前的目錄狀態
在与config文件夹位于同一层级的位置可以看到一个名为”api”的文件夹已经存在。
由于这个api将成为一个应用程序,所以如果以后想要创建前端界面,
也可以创建一个用于前端的应用程序。

在设置文件中添加附加应用程序。
这是让Django识别”api”和”restframework”应用程序的工作。
追加的内容,请放在config文件夹下。
– 链接起来djangorestframework(已经在安装时安装的内容)
– 链接起来api(作为api应用程序添加的内容)
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#以下の2つを追加
'rest_framework',
'api',
]
5.模型的建立
由于Django采用了ActiveRecord模型,所以需要先创建模型来建立数据库。我们将修改api文件夹下的文件。这次我们决定创建一个名为User的模型。
from django.db import models
# Create your models here.
class User(models.Model):
name = models.CharField(max_length=32)
email = models.EmailField()
6. 建立数据库
我们决定使用Django的标准SQLite3。
如果追求实用性的话,似乎最好使用PostgreSQL。
请在以下命令行中执行,创建数据库。
#データベース構築のためのmigrationファイルを作成
python manage.py makemigrations
#migrationファイルを元にデータベースを構築する
python manage.py migrate
7. 序列化器的定义。
Serializer是restframework的一个模块,用于处理请求的验证和过滤等任务。(由于serializer有多种实现方式,因此需要进行研究并尝试实现。)
我希望在这次开发中,能够使用JSON格式返回响应,并且充分利用模型定义,因此我想使用ModelSerializer。
如果能够巧妙地使用Serializer,开发速度可能会显著提高。
将以下文件在api文件夹下创建为新文件。
# coding: utf-8
from rest_framework import serializers
from .models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('name', 'email')
8. 视图的定义
我将修改api文件夹下的views.py文件。
视图在页面上扮演返回哪个页面的角色,
这里会记录获取哪些数据以及以何种形式返回。
# Create your views here.
from rest_framework import viewsets
from .models import User
from .serializer import UserSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
9.URL 的定義
URL分发器将读取以下文件,以便将URL定义的api应用程序设置为可读。
from django.contrib import admin
from django.urls import path, include
from api.urls import router
urlpatterns = [
path('admin/', admin.site.urls),
#apiのurlsをインクルード
path('api/', include(router.urls)),
]
在api文件夹中创建一个新的urls.py文件,并定义与视图的关联。
# coding: utf-8
from rest_framework import routers
from api.views import UserViewSet
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
10.服务器启动
请使用以下命令启动服务器。
如果要停止,请使用Ctrl + C来停止。
python manage.py runserver
确认
我将尝试通过以下的URL进行访问并进行确认。
如果屏幕成功显示,则表示操作成功。
访问「http://localhost:8000/api/」。


12. 心得体会
虽然可以轻松地创建应用程序,但我觉得还需要了解Django框架的工作原理,以及它是否能够根据需求提供相应的功能。
我打算在将来尝试多方面的应用,积累可以实践的知识和技术。
此外,作为一种流行的编程语言,学习最近流行的Python也可能对像我这样的初学者很有好处。
请参照以下内容,用汉语进行本地化的改述,只需要一种选项:
参考
https://docs.djangoproject.com/ja/2.1/intro/tutorial01/
https://qiita.com/kimihiro_n/items/86e0a9e619720e57ecd8 ->
https://docs.djangoproject.com/ja/2.1/intro/tutorial01/
https://qiita.com/kimihiro_n/items/86e0a9e619720e57ecd8。