python - 创建第一个 Django 项目 : admin webpage will not open

标签 python django

注意:具体问题在下方。首先,我描述了我经历的所有步骤 :-) )

我正在使用 Python 2.7 和 Django 4.2.1 在 Windows 上。

我正在创建一个名为“mysite”的项目,这是在 docs.djangoproject.com 上使用的项目。

到目前为止,我已经按照教程中的方式完成了以下操作:

1) 输入:django-admin.py startproject mysite 这创建了所有标准文件夹,它们是:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

2) 输入:manage.py runserver 当在地址栏中输入 http://127.0.0.1:8000 时,我收到了一条祝贺信息。

到目前为止,还不错..

3) 然后我编辑了 settings.py 文件。首先,我编辑了数据库引擎并输入了以下内容:

'django.db.backends.sqlite3'

4) 还是在 settings.py 中,我指定了一个数据库名称,以便它创建一个数据库文件。我称之为:

'mysitedb'

5) 然后我通过键入同步数据库(以创建表):

manage.py syncdb

6) 然后教程要求创建一个名为 polls 的应用程序。所以我输入:

manage.py startapp polls

创建了以下文件夹和文件:

polls/
    __init__.py
    admin.py
    models.py
    tests.py
    views.py

7) 教程然后要求通过键入以下内容来编辑 models.py:

from django.db import models
import datetime
from django.utils import timezone

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __unicode__(self):
        return self.question

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField()

    def __unicode__(self):
        return self.choice_text

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

8) 接下来,我必须通过键入以下内容来编辑 settings.py 文件中的 INSTALLED_APPS 部分:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls',
)

9) 然后我输入以下内容来创建表及其字段(我猜..):

manage.py sql polls

然后打印出如下内容:

BEGIN;
CREATE TABLE "polls_poll" (
    "id" integer NOT NULL PRIMARY KEY,
    "question" varchar(200) NOT NULL,
    "pub_date" datetime NOT NULL
);
CREATE TABLE "polls_choice" (
    "id" integer NOT NULL PRIMARY KEY,
    "poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"),
    "choice_text" varchar(200) NOT NULL,
    "votes" integer NOT NULL
);
COMMIT;

10) 然后我必须输入以下内容来创建表(同步):

manage.py syncdb

到目前为止,还是那么好..

10) 然后他们建议我在命令中运行 python shell 并使用数据库 API。那时一切正常。可以在表格的字段等中添加数据。

但这就是它不起作用的地方。来自教程的第 2 部分。我必须再次运行服务器(我这样做了:manage.py runserver,它运行良好..)。 我打开一个浏览器网页并输入 http://127.0.0.1:8000/admin/ 我得到了同样的结果“成功了!祝贺你的第一个 Django 支持的页面......”

没有错误信息。那么如何让带有用户登录名(用户名和密码)的管理页面出现呢?

任何帮助将不胜感激。 谢谢!

最佳答案

通常当 Django 中的管理员不工作时,两个主要的罪魁祸首是忘记将以下两行添加到 urls.py 文件中。

admin.autodiscover()

url(r'^admin/', include(admin.site.urls))

现在您可以继续本教程,当您在 admin.py 中注册模型时,不要忘记

admin.site.register(MyModelGoesHere, MyModelAdminNameGoesHere)

祝你好运! :)

关于python - 创建第一个 Django 项目 : admin webpage will not open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14699762/

相关文章:

python - 离线安装Django

python - 如何定义 settings.LOGGING 以便 gunicorn 找到它想要的版本值?

django - Chartkick 的 ChartJS 选项

python - 将合成的文本转语音记录到 Python 文件中

python - 从变量 Python (urllib2.urlopen) + Beautifulsoup4 打开链接

python - 用长度相同的字符串替换RegEx

javascript - 减慢 Django Web 应用程序中 Vue.js 更新方法中的请求速率

python - cqlsh 命令在 cassandra 2.0.8 中不起作用

python - Python 现在或将来会弃用 `pytz` 吗?

python - django session 以防止用户多次投票