首先迅速使用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时,会显示如下内容。
仅需文字展示
我将显示文字在这上面。
将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/应该会显示如下内容。
部署
我們將進行部署。我們將創建一些設定文件。
(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/ 时,应该会看到以下内容。
请注意
我一开始只是想通过URL来发布网络内容(仅限文字),所以对于数据库迁移、安全性等方面没有考虑。我会慢慢解决这些问题,并继续写下一个系列。
感谢您曾经帮助过的页面。
https://qiita.com/noraricl/items/08937a508a2abecc7179
https://qiita.com/frosty/items/66f5dff8fc723387108c