创建第一个Django项目:管理页面无法打开

3 投票
1 回答
5229 浏览
提问于 2025-04-17 14:46

注意:具体的问题在下面的最后部分。首先我会描述我经历的所有步骤 :-) )

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

我正在创建一个叫“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。到那时一切都正常。我可以在表格的字段中添加数据等等。

但接下来就不行了。根据教程的第二部分,我需要再次运行服务器(我做了:manage.py runserver,运行正常..)。我打开浏览器,输入 http://127.0.0.1:8000/admin/,结果却还是同样的“它工作了!恭喜你创建了第一个Django页面...”

没有错误信息。那么我该怎么才能看到带有用户登录(用户名和密码)的管理页面呢?

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

1 个回答

5

通常情况下,如果Django中的管理后台无法正常工作,主要的原因往往是忘记在urls.py文件中添加以下两行代码。

admin.autodiscover()

还有

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

现在你可以继续教程了,当你在admin.py中注册模型时,别忘了

admin.site.register(MyModelGoesHere, MyModelAdminNameGoesHere)

祝你好运!:)

撰写回答