注意:具体问题在下面结束.我首先描述了我想要的所有步骤:-))
我在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
Run Code Online (Sandbox Code Playgroud)
2)键入:manage.py runserver,当http://127.0.0.1:8000在地址栏中输入时,我收到了祝贺信息.
到现在为止还挺好..
3)然后我编辑了settings.py文件.首先,我编辑了DATABASE ENGINE并键入以下内容:
'django.db.backends.sqlite3'
Run Code Online (Sandbox Code Playgroud)
4)仍然在settings.py中,我指出了一个DATABASE名称,以便它创建一个数据库文件.我叫它:
'mysitedb'
Run Code Online (Sandbox Code Playgroud)
5)然后我输入以下命令同步数据库(创建表):
manage.py syncdb
Run Code Online (Sandbox Code Playgroud)
6)然后教程要求创建一个名为polls的应用程序.所以我键入:
manage.py startapp polls
Run Code Online (Sandbox Code Playgroud)
这创建了以下文件夹和文件:
polls/
__init__.py
admin.py
models.py
tests.py
views.py
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
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',
)
Run Code Online (Sandbox Code Playgroud)
9)然后我输入以下内容来创建表格及其字段(我猜...):
manage.py sql polls
Run Code Online (Sandbox Code Playgroud)
然后打印出来:
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;
Run Code Online (Sandbox Code Playgroud)
10)然后我必须输入这个来创建表(同步):
manage.py syncdb
Run Code Online (Sandbox Code Playgroud)
到目前为止,还是那么好..
10)然后他们建议我在命令中运行python shell并使用数据库API.那时一切都很好.可以在表格的字段中添加数据等.
但这里它不起作用.从教程的第2部分.我必须再次运行服务器(我这样做:manage.py runserver,它运行正常......).我打开了一个浏览器网页并打印出来http://127.0.0.1:8000/admin/,我得到了同样的"它工作了!祝贺你的第一个Django驱动的页面......"
没有错误消息.那么如何让管理页面显示用户登录(用户名和密码)?
任何帮助将不胜感激.谢谢!
通常当Django中的管理员不工作时,两个主要的罪魁祸首是忘记将以下两行添加到urls.py文件中.
admin.autodiscover()
Run Code Online (Sandbox Code Playgroud)
和
url(r'^admin/', include(admin.site.urls))
Run Code Online (Sandbox Code Playgroud)
现在您可以继续学习本教程,当您在admin.py中注册模型时,请不要忘记
admin.site.register(MyModelGoesHere, MyModelAdminNameGoesHere)
Run Code Online (Sandbox Code Playgroud)
祝好运!:)
| 归档时间: |
|
| 查看次数: |
4048 次 |
| 最近记录: |