创建第一个Django项目:管理页面无法打开
注意:具体的问题在下面的最后部分。首先我会描述我经历的所有步骤 :-) )
我在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 个回答
通常情况下,如果Django中的管理后台无法正常工作,主要的原因往往是忘记在urls.py文件中添加以下两行代码。
admin.autodiscover()
还有
url(r'^admin/', include(admin.site.urls))
现在你可以继续教程了,当你在admin.py中注册模型时,别忘了
admin.site.register(MyModelGoesHere, MyModelAdminNameGoesHere)
祝你好运!:)