使用Django 2.0构建Python Restful Web服务:一)开篇

从本篇开始,我们将使用Python和其最流行最全面的Web框架——Django来创建RestFul服务。

在本篇中,我们将安装使用Django创建RestFul服务所需的基本工具以搭建一个用于Django RestFul Web服务的开发环境。

在本书中,所有的环境都是基于:

  • Windows操作系统(其他操作系统平台的使用方法可能略有差异)
  • Python 3.5+(还在使用Python2的同学请自觉回避)
  • Django 2.0+

在本篇,我们将会涉及到以下内容:

  • virtualenv虚拟环境的创建和使用;
  • 在虚拟环境中安装Django和RestFul模块;
  • Django项目和应用的创建和配置;
  • 安装Postman客户端工具;

1.1 、创建并使用Python虚拟环境

1.1.1、为什么需要一个Python虚拟环境

有过Python编程经验的同学大概会有这样的体会:随着涉及的范围越来越多,或者开发的项目各有不同,我们安装的Python第三方模块也随之增多,一方面过多的第三方模块,不便于管理;另一方面,不同的项目之间所需求和依赖的第三方模块版本可能也有差异。这时候如果只在一个Python环境下进行项目开发,可能会出现这个项目能运行,另一个项目却报错的问题。

面对这种问题,一个解决方法是使用Python虚拟将不同的项目独立划分出来,每个项目都是最基础的Python环境,需要什么模块,需要什么版本的模块,都自行安装。

1.1.2、使用virtualenv创建一个Python虚拟环境

virtualenv是一个用于创建独立的Python环境的工具,用于解决Python开发中版本依赖和兼容的问题。

virtualenv的安装命令为:

pip install virtualenv

 

使用pip install virtualenv命令安装好virtualenv模块之后,我们就可以在命令行界面直接使用virtualenv命令了:

由上图可以发现,virtualenv有很多个选项,但是在这里我们使用默认的使用方法,在virtualenv后接上虚拟环境的名称就可以创建一个虚拟环境了,我们在目录下创建一个名为django_rest_env的虚拟环境:

virtual django_rest_env

 

默认情况下,virtualenv创建一个只包含了pip、wheel和setuptools这三个模块安装工具的全新Python环境。

在当前目录下,我们可以发现已经多出了一个新的文件夹——django_rest_env,点击进去可以查看我们创建的django_rest_env虚拟环境的结构,如下图所示:

对比我们本地安装成功的Python目录下的结构,可以发现,其可以说是麻雀虽小,五脏俱全:

在Scripts子目录下有很多可供我们使用的Python脚本,其中的activate脚本用来激活当前的虚拟环境,代码如下所示:

Scripts\activate

 

当看到命令行中目录前出现一个括号包含着虚拟环境的名称,说明我们已经激活了虚拟环境。

如果需要退出当前的虚拟环境,可以使用Script子目录下的deactivate脚本来实现虚拟环境的退出,代码如下所示:

Scripts\deactivate

 

1.2、安装Django和RestFul模块

在创建好Python虚拟环境之后,我们开始安装我们所需要的模块——Django和DjangoRestFrameWork。

Django用于在Python中提供Web服务,DjangoRestFrameWork则使得Django具备提供基于Restful 的Web服务。

在本书写作之时,Django 2.0已经全新发布,其带来了很多新的特性和功能,虽然Django 1.11版本会继续支持到2022年,但在此,我们仍然采用最新的Django 2.0版本。

在virtualenv环境中使用pip工具安装Django:

pip install django

 

在virtualenv环境中使用pip工具安装django-rest-framwork:

pip install djangorestframwork

安装完成之后,我们进入Python Shell中测试一下安装是否成功:

结果引入没有报错并且打印出了它们的版本号,说明我们的安装是成功的。

1.3 、规划项目和Rest Api

完成了上述步骤之后,我们可以正式使用Django和django-rest-framework来创建Restful服务了。

但是在此之前,我们先来规划一下我们的这个用于提供Restful服务的Django项目。

首先,我们创建的是一个用于记录电影和评分的项目,既然是使用的Restful来提供服务,那么我们根据Restful的规范,定义以下HTTP方法及其作用范围:

  • GET:用于获取电影列表;
  • GET:用于获取电影;
  • POST:用于在电影列表中创建电影;
  • PUT:用于修改电影;
  • DELETE:用于删除电影;

1.4、创建和配置Django项目

现在,我们可以开始这个基于Django开发的Restful 服务的开发了。首先来创建一个Django项目。

1.4.1、创建Django项目和应用

进入激活之前创建的vietualenv虚拟环境——django_rest_env,使用Django的命令——django-admin来创建一个项目,代码如下所示:

django-admin startproject moviesapi

然后,进入到moviesapi目录下,利用manage.py工具,创建一个应用,代码如下所示:

python .\manage.py startapp movies

1.4.2、添加所需应用到项目

在Django项目和应用都创建好之后,我们先来进行一些初步的配置,将刚刚安装的django-rest-framework模块和movies应用添加到moviesapi项目中。

打开moviesapi目录下的settings.py文件,在第33行左右的位置,有一个名为INSTALLED_APPS的列表变量,我们修改如下代码所示:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'movies',
]

 

1.4.3 修改项目时区

这个操作不是必须的,但是为了便于友好地显示,我们将项目默认语言改为中文,在settings.py文件中,修改变量LANGUAGE_CODE的值为cn-hans,代码如下所示:

LANGUAGE_CODE = 'zh-hans'

 

为了便于时间的计算和显示,我们将项目默认的时区从UTC时区修改为中国的时区,代码如下所示:

TIME_ZONE = 'Asia/Shanghai'

 

1.5、安装Postman测试工具

在此,我们推荐安装一个工具——Postman,用于测试Restful服务。Restful服务中使用到了HTTP协议中的多种方法,而常规的浏览器只是提供GET方法的显示请求,对于其他方法来说,就不是很好进行测试。虽然可以使用命令行工具来测试,但是操作起来并不顺手。所以在此推荐使用这个界面友好的工具——Postman。

打开Postman的官网(https://www.getpostman.com/),点击下载按钮:

跳转到下载页面后,根据自己的操作系统选择合适的版本:

最后执行安装包即可。

安装完成后,打开软件,其界面如下图所示:

可以发现,我们可以显式地调用各种HTTP协议方法。对于Postman更多的用法,我们会在接下来的章节中介绍到。

1.2、本章小结

本章从Python虚拟环境virtualenv的创建开始,介绍了一整个基于Django开发Restful服务的Web环境的搭建,最后还介绍安装了一个非常有用的restful接口测试工具——Postman。在完成了本章的基础上,我们就可以进行项目的Restful服务的开发和构建了。

猜你也喜欢

  1. 吊炸天说道:

    大神!受我一拜!

  2. 状态很迷说道:

    这么新的教程,现在很少有2.0的

    1. zmister说道:

      哈哈,现写的

发表评论

邮箱地址不会被公开。