首先迅速使用Django框架创建网站,在Heroku上公开它(适用于Windows)

有一种名为Django的库可以使用Python构建Web应用程序。最近,与租用服务器相比,使用PaaS似乎更受欢迎,因此我将总结使用Django创建网站并将其部署到Heroku上以进行公开发布的步骤,这也是对自己的复习总结。另外,不知为何,关于Web技术的文章似乎大多与Mac相关,但本文是针对Windows系统的。

    • OS…Windows 10

 

    • Python…3.7.0

 

    Django…2.2.0

建立虚拟环境

首先,我们将构建一个虚拟环境。本文中使用Anaconda,但也可以使用pipenv或其他工具。虽然也可以直接使用本地的Python环境,但不建议这样做,因为后续使用pip freeze生成requirements.txt时会变得非常繁琐。而且可能在部署时出现问题。

C:\Users\hoge>conda create -n django-heroku python==3.7
C:\Users\hoge>conda activate django-heroku
(django-heroku) C:\Users\hoge\testproject>conda install django==2.2

对于Python的版本,我觉得并不是很严格,所以可以任何版本,但我默认选择了3.7。有关受支持的版本,请查看这里。

创建Django项目

(django-heroku) C:\Users\hoge\testproject>django-admin startproject testproject .  
(django-heroku) C:\Users\hoge\testproject>python manage.py startapp testapp

我們將編輯C:\Users\hoge\testproject\testproject\settings.py裡的INSTALLED_APPS部分,如下所示。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'testapp',#追加
]

在此阶段,本地服务器应能够显示。

(django-heroku) C:\Users\hoge\testproject>python manage.py runserver

连接到http://127.0.0.1:8000时,会显示如下内容。

image.png

仅需文字展示

我将显示文字在这上面。

将C:\ Users \ hoge \ testproject \ testproject \ urls.py编辑如下。

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

from django.urls import include #追加

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include("testapp.testappurls")) #追加
]

在C:\Users\hoge\testproject\testapp的子目录下创建一个名为testappurls.py的文件(默认情况下该文件不存在)。将该文件按照以下方式进行编辑。

from django.urls import path
from . import views

app_name = 'testapp'

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

我們將編輯C:\Users\hoge\testproject\testapp\views.py文件如下所示。

from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse #追加


def index(request):#追加
    return HttpResponse('はろわ')#追加

打开网址http://127.0.0.1:8000/应该会显示如下内容。

image.png

部署

我們將進行部署。我們將創建一些設定文件。

(django-heroku) C:\Users\hoge\testproject>echo web: gunicorn testproject.wsgi --log-file - > Procfile
(django-heroku) C:\Users\hoge\testproject>echo python-3.7.0 > runtime.txt
(django-heroku) C:\Users\hoge\testproject>pip install django-heroku
(django-heroku) C:\Users\hoge\testproject>pip install gunicorn
(django-heroku) C:\Users\hoge\testproject>pip freeze > requirements.txt

Anaconda环境下不建议使用pip,但是有些模块只能通过conda安装,所以不得不使用pip。

现在是本地调试环境,需要切换到生产环境。请将C:\Users\hoge\testproject\testproject\settings.py文件中DEBUG和ALLOWED_HOSTS的部分修改如下。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['*']

创建一个git仓库并将其推送到Heroku。假设已经安装了git和Heroku的命令行界面(CLI)。

(django-heroku) C:\Users\hoge\testproject>git init
(django-heroku) C:\Users\hoge\testproject>git add .
(django-heroku) C:\Users\hoge\testproject>git commit -m "first commit"
(django-heroku) C:\Users\hoge\testproject>heroku login
(django-heroku) C:\Users\hoge\testproject>heroku create hibit-webpage-test
(django-heroku) C:\Users\hoge\testproject>heroku config:set DISABLE_COLLECTSTATIC=1
(django-heroku) C:\Users\hoge\testproject>git push heroku master

这样就可以发布了!

当您访问 https://hibit-webpage-test.herokuapp.com/ 时,应该会看到以下内容。

image.png

请注意

我一开始只是想通过URL来发布网络内容(仅限文字),所以对于数据库迁移、安全性等方面没有考虑。我会慢慢解决这些问题,并继续写下一个系列。

感谢您曾经帮助过的页面。

https://qiita.com/noraricl/items/08937a508a2abecc7179
https://qiita.com/frosty/items/66f5dff8fc723387108c

广告
将在 10 秒后关闭
bannerAds