尝试在使用pipenv创建的Django环境中运行Python

概述

本文是一个初学者以RESTful API和Swift开发针对iPhone的优惠券分发服务的步骤按顺序写成的文章。由于在实施过程中逐个研究技术要素,所以实现非常绕远的方式。

我将在使用pipenv构建的虚拟环境中安装Django,并尝试运行Django程序。我将使用VSCode作为编辑器。

参考:

    • Python Django 超入門 掌田津耶乃 著 秀和システム

 

    https://qiita.com/dynamonda/items/5a8129cd6e9cc139d94a

环境

MacOS 10.15
pipenv 版本2018.11.26
Django 2.2.6
VSCode 1.39.2

操作步骤

    • Django のプロジェクトを作成する

 

    • VSCodeがpipenvのpythonを参照するように設定

 

    • djangoのサーバーを起動してみる

 

    • サンプルプログラムを作成

 

    動作確認

创建 Django 项目

在创建了Pipenv虚拟环境(项目)的目录中,执行以下命令进入Pipenv的shell(chell)。

$ pipenv shell
into-pipenv-shell-m.png

在pipenv的Shell中,执行以下命令以创建Django项目。

$ django-admin startproject [プロジェクト名]

执行命令后没有任何显示的话,很可能是成功的。执行ls命令时,应该会创建一个名为你所创建的项目名称的目录。就我个人而言,我选择了”ami_coupon_api”作为项目名称,所以也创建了一个同名的目录。

为了在VSCode中使用Python,要安装扩展功能。

如果您現在已經安裝了VSCode,那可能沒有安裝Python擴展功能。請按照以下步驟最低限度安裝Python擴展功能。

    1. 从VSCode的左侧菜单中打开Extensions(它的图标看起来是四个方块排列的)

 

    1. 在搜索框(在Marketplace中搜索Extensions)中输入Python

 

    显示出与Python相关的扩展功能列表,选择由Microsoft创建的Python扩展功能,并点击绿色的Install按钮。
VSCode-search-python-extensions-m.png

请将VSCode的配置设置为参考pipenv的python。

如果不进行此设置,则VS Code无法正确加载在pipenv构建的虚拟环境中的Django,并会显示错误消息。

首先,进入pipenv的终端,然后查看pipenv虚拟环境中python的路径。

$ which python
check-python-path-m.png

接下来打开VSCode,然后打开刚刚创建的Django项目的目录。然后在该目录下找到名为”.vscode”的文件夹,然后打开该文件夹下的settings.json。

set-path-setting-jason-m.png
after-setting-setting-json.png

尝试启动Django服务器

在进入pipenv的shell状态后,移动到刚才创建的Django项目的目录下,并通过运行ls命令确认是否存在manage.py文件。

在初次运行服务器之前,需要对manage.py进行迁移。请执行以下命令对manage.py进行迁移。

$ python manage.py migrate
runserver-error.png

请启动Django服务器。请执行下方的命令。

$ python manage.py runserver
runserver-success.png

请在浏览器中访问http://127.0.0.1:8000/(本地主机的8000端口),如果显示了火箭动画,则说明服务器启动成功。

server-running-m.png

创建Django应用程序

要编写和运行Django代码,需要创建一个Django应用程序。目录结构如下所示。

    • pipenvの仮想環境のディレクトリ(pipfileが格納されている)

Djangoのプロジェクトのディレクトリ

Djangoのアプリのディレクトリ

要创建Django应用程序,在pipenv的Shell中进入manage.py所在的目录(Django项目的目录),并执行以下命令。

$ python manage.py startapp [アプリ名]

我自己创建了一个名为”hello”的应用。当在Django项目的目录下执行ls命令时,会创建一个以我创建的应用名命名的目录。

创建示例代码

我将创建一个代码,在浏览器上显示”Hello! Python & Django”。

使用VSCode打开Django项目的目录,目录下有一个名为应用名称(在这里是Hello)的文件夹,打开它。然后,在文件夹下找到一个名为views.py的Python文件,我们在那里编写示例代码。

顺便提一下,我认为还有一个名为 models.py 的文件也存在。这些文件是在创建Django应用程序时自动生成的文件。从一开始,文件就会按照所谓的MVC模型的要求生成。 view.py 是用于编写界面显示相关处理的文件。

我编辑了views.py,并写了下面的示例代码。

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("Hello! Python & Django!")

如果从浏览器访问(请求)views.py文件中的index函数时,这个程序会以HTTP的形式将字符串”Hello! Python & Django!”返回给浏览器。

现在,我们将在浏览器或其他浏览器上设置访问”hello”应用程序的views.py文件的配置。具体来说,我们将试用过的Django服务器的URL:http://127.0.0.1:8000/hello 添加到views.py文件中,以便可以通过该URL发送请求。

首先,打开项目名称的目录下的urls.py文件,
添加代码from django.urls import path,include和path(‘hello/’, include(‘hello.urls’))。

以下是追加后的urls.py。

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', include('hello.urls'))
]

如果从浏览器等发送的请求的URL中指定了hello,那么就要查看hello文件夹下的urls.py文件的设置。当服务器接收到请求的URL时,首先查看的是项目名称目录下的urls.py文件,所以要进行这样的设置。

然而,在hello文件夹中并没有urls.py文件。因此,您需要在Hello应用程序的目录下自己创建一个名为urls.py的文件,并写入以下代码。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

这段代码是在hello文件夹的urls.py中设置,当有请求进来时,将请求传递给名为index的函数。

当在http://127.0.0.1:8000/hello发出请求时,请求将通过这些设置传递给hello文件夹中的views.py。每个层级的urls.py就像提供导航指引一样。

确认行动

将已编辑的程序保存,并在服务器上运行。
在 pipenv 的 shell 中进入 manage.py 所在的目录,并执行命令 $ python manage.py runserver 来启动服务器。

确定服务器已经启动后,在浏览器中访问http://127.0.0.1:8000/hello/。
如果显示“Hello! Python & Django!”,则表示成功。

program-run-result-m.png

下一次,我将尝试使用Django来实现一个简单的webAPI。

广告
将在 10 秒后关闭
bannerAds