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

时间:2013-02-05 03:35:52

标签: 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文件。首先,我编辑了DATABASE ENGINE并键入以下内容:

'django.db.backends.sqlite3'

4)仍然在settings.py中,我指出了一个DATABASE名称,以便它创建一个数据库文件。我打电话给它:

'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支持的页面......”

没有错误消息。那么如何让管理页面显示用户登录(用户名和密码)?

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

1 个答案:

答案 0 :(得分:5)

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

admin.autodiscover()

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

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

admin.site.register(MyModelGoesHere, MyModelAdminNameGoesHere)
祝你好运! :)