Django Rest Framework 2.x 的教程(1)

要求

    • Python > 3.6

 

    Mac or Linux (recommend)

创建venv环境

为了不破坏主机环境,使用Python的虚拟环境venv可能是最简单的方法之一。

mkdir <project-name> # ex. example_django_rest_api
cd <project-name>
python -m venv venv
source venv/bin/activate

突然终止的。

~$ -> [venv] ~$ 的格式如上所示。换句话说,如果不是这样,就无法进入 venv 环境。

首先启动项目

安装和确认软件包

在venv环境中,首先进行所处理项目所需的依赖包的安装。

pip install Django django-livesync drf_yasg djangorestframework uWSGI packaging

让我们检查已安装的软件包。

pip freeze
$ pip freeze
# ...
# Django==2.2.4
# django-livesync==0.4
# djangorestframework==3.10.2
# ...

为了将来的使用,我们应该保存已经安装的软件包列表。

$ pip freeze > requirement.txt

目前的文件夹结构如下所示。

. example_django_rest_api
├── db.sqlite3
├── example_django_rest_api
│   ├── __init__.py
│   ├── __pycache__
│   │   └── ...
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── venv
│   └── ...
└── requirement.txt

辛苦了。再努力一点,我们来小休息一下吧。

你好,Django!

您可以使用下面的命令来启动项目。

请确保不要忘记输入句子结尾的”.”。

$ django-admin startproject example_django_rest_api .
$ python manage.py runserver

请在您的浏览器中访问 http://localhost:8000。您应该可以看到类似下面的屏幕。

尝试使用Django!这是一篇类似于有大约1000个赞的文章中经常见到的东西。

嘿,通过Django问候您,小意潇洒!

通过编辑一些文件,就能打开通往 Swagger 的门。顺便进行 livereload 等设置。

首先,我们要编辑settings.py文件。

# add '*' into a list
ALLOWED_HOSTS = ['*']

# add some elements into a list
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # add below elements
    'livesync',
    'rest_framework',
]

# add below lines
MIDDLEWARE_CLASSES = (
    'livesync.core.middleware.DjangoLiveSyncMiddleware',
)

接下来,我们要编辑 urls.py 文件。

from django.contrib import admin
from django.urls import path

# add below lines
from django.conf.urls import url

from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view = get_schema_view(
   openapi.Info(
      title="RESTful API Lists",
      default_version='v1',
      description="Django Rest Framework Swagger : First Steps",
      terms_of_service="https://github.com/MokkeMeguru",
      contact=openapi.Contact(email="meguru.mokke@gmail.com"),
      license=openapi.License(name="MIT"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

# add some elements into the list
urlpatterns = [
    path('admin/', admin.site.urls),
    # url(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
   url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]

编辑完成后,请尝试访问http://localhost:8000/swagger。您应该会看到熟悉的Swagger界面。我认为这对于尝试和测试API非常方便(我们将在下次介绍)。

如果你对API的文档感兴趣,你可以访问http://localhost:8000/redoc来查看。

现在本次教程就结束了,来杯咖啡放松一下吧。

提示

django-rest-swagger的停用

根据这个问题,django-rest-swagger已经过时了。

我们可以使用drf-yasg来代替。

关于PyMySQL与Django的不兼容性。

听说Django似乎不想与PyMySQL进行配合。至少在Django 2.2.1中没有支持。从https://docs.djangoproject.com/en/2.2/releases/2.2/可以看出,它更倾向于使用mysqlclient。

请不要让同功能的库过多地泛滥(紧迫请求)。

在OOO(编辑器名称)中,如何进入venv环境?

请在 “OOO venv python” 这附近进行查找。如果还不清楚的话,你可能不适合使用这个编辑器。

用中文简述以下命令,只需要一种选项:

使用pip命令安装requirement.txt中的依赖库。

从保存有依赖包的文件中进行包安装的方法。在克隆到不同环境并执行时非常重要。

积压订单

这些数据可以在这个仓库的v0.1.1版本的发布中找到。

代码库

目录

Django Rest Framework 2.x 的教程(0)
Django Rest Framework 2.x 的教程(1)
Django Rest Framework 2.x 的教程(2)
Django Rest Framework 2.x 的教程(3)
Django Rest Framework 2.x 的教程(4)
Django Rest Framework 2.x 的教程(5)
Django Rest Framework 2.x 的教程(6)

bannerAds