使用python3.8和Django3.1在pythonanywhere.com中手动安装webapp

2024-04-25 09:41:24 发布

您现在位置:Python中文网/ 问答频道 /正文

背景

我在pythonanywhere.com有一个免费帐户。我感谢他们提供了这非常好的免费服务和学习体验

对于那些鼓励我使用StackOverflow来回答有关他们网站问题的Pythonywhere的人们,我首先要说的是,我真的很喜欢你们对该网站所做的一切,我很高兴自己开始在那里建设一些东西

我已经在pythonanywhere.com中使用Flask完成了第一个教程,第二个简单的webapp(我根据您的第一个教程改编)完全相同,但使用了内置的django 2.2来代替Flask

现在,我正在尝试另一个站点上使用Python3.8和Django3.1的教程

我遵循djangoforbeginners.com网站(helloworld app)的第2章,并尝试在我的pythonanywhere.com帐户中实现那里的指令。我知道我需要修改一些djangoforbeginners.com指令以适应pythonanywhere.com环境(例如pipenv不起作用,但pip install django~=3.1.0起作用)

(这不是我的主要问题,而是我希望在将教程从另一个站点改编到pythonanywhere.com环境时会遇到的问题的一个例子)我在python manage.py runserver步骤中遇到了一个问题:

当我运行上述代码时,我在bash控制台上看到以下错误:

Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 13, 2020 - 20:33:32
Django version 3.1, using settings 'config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Error: That port is already in use.

这对我来说很有意义,因为当我尝试访问username.pythonanywhere.com上的webapp时,我会看到一个“即将到来”页面(在仪表板中禁用我的webapp后;在仪表板Web选项卡中启用我的webapp后,我会看到一个默认的“Hello World”页面),我知道在这两种情况下都意味着端口确实已经在使用中(由pythonanywhere.com提供的服务器提供)。所以在看到这个错误后再考虑一下,我现在认为我甚至不应该在pythonanywhere.com环境中尝试这个python manage.py runserver步骤

那么继续我真正的问题:

我已经按照我在https://help.pythonanywhere.com/pages/Virtualenvs中找到的说明进行了操作,包括结尾的部分,其中写道:“现在您有了一个virtualenv,并且知道了它的路径,您可以继续并将其输入到Web选项卡中

转到Virtualenv部分,输入路径:/home/myusername/.virtualenvs/myvirtualenv“

我在pythonanywhere.com的bash控制台中使用mkvirtualenv virtualenv01py38 --python=/usr/bin/python3.8创建了我的虚拟环境

我还向pythonanywhere.com的仪表板中的Web选项卡添加了此Web应用程序的源代码目录:/home/username/projects/djangoforbeginners.com/ch02helloworld

当我使用dashboard Web选项卡重新加载Web应用程序时,我看到一条错误消息:“您的Web应用程序重新加载花费了很长时间。它可能已重新加载,但我们无法检查它。”

但当我访问我的webapp的URL时,我看到的不是熟悉的Django欢迎页面,而是一个明显静态的html页面: “你好,世界! 这是Pythonywhere托管web应用程序的默认欢迎页面…”

因此,我的问题是如何在pythonanywhere.com环境中实现来自djangoforbeginners.com的helloworld应用程序

更具体地说,我现在的问题是,为什么我没有看到第一张图中显示在djangoforbeginners.com的熟悉的Django欢迎页面,以及当我看到pythonanywhere.com提供默认的hello world webapp(显然只是一个静态html页面)时,如何继续向前推进python manage.py runserver步骤而不是django 3.1 hello world应用程序,我正试图让它从django Forbeginners.com教程中提供

提前感谢您的建议


Tags: djangopycomweb应用程序manage环境网站
2条回答

就像Glenn说的,你必须先在Web选项卡下创建一个Web应用程序。我写了一篇文章How to deploy Django to Pythonanywhere,引导您了解GitHub、HTTPS、MySQL和环境变量的整个过程

您不能从控制台运行Django网站。如果您希望web应用可用,则需要使用它。我们有一个help page详细描述了如何将现有的Django项目作为web应用程序运行

相关问题 更多 >