簡體   English   中英

本地服務器上的Django,博客應用只能查看管理員頁面

[英]Django, blog app, on local server can only see administrator page

自從更新到Django 1.6.5以來,在Django中創建博客的簡單示例對我來說不再正確。 在我第一次創建Django項目之后,我可以運行127.0.0.1:8000/並且Django運行正常。 但是,一旦我進一步走了幾步,並在settings.py文件中將“ blog”添加到INSTALLED_APPS中,就創建了Blog App,我將無法再訪問127.0.0.1:8000,也無法訪問127.0.0.1 :8000 / blog,這是我在127.0.0.1:8000/blog遇到的頁面未找到(404)錯誤:

    Request Method:     GET
       Request URL:     http://127.0.0.1:8000/blog

       Using the URLconf defined in mysite2.urls, Django tried these URL patterns, in this order:

       ^blog/
       ^admin/

       The current URL, blog, didn't match any of these.

但是我確實創建了博客地址,即使在上面的錯誤中也是如此,^ blog /好的,我將向您展示html和py文件,我認為這對確定我的問題最有幫助。

C:\\ mysite2 \\ mysite2中的settings.py文件

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '=ja7o^#pm2hd!swt67%1h!)!et(i$91v1flks9ms-&8@r17((5'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

TEMPLATE_DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'blog',         ## ***add for blog app
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'mysite2.urls'

WSGI_APPLICATION = 'mysite2.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# Internationalization
# https://docs.djangoproject.com/en/1.6/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = '/static/'

C:\\ mysite2 \\ mysite中的modles.py文件

from django.db import models
# Create your models here.
class Post(models.Model):
    title = models.CharField(max_length = 140)
    body = models.TextField()
    date = models.DateTimeField()

    def __unicode__(self):
        return self.title

C:\\ mysite2 \\ mysite2中的urs.py文件

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite2.views.home', name='home'),   ## ** i tried uncommenting but no help
    url(r'^blog/', include('blog.urls')),  ## once i add this on i can not go to http://127.0.0.1:8000/

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

C:\\ mysite2 \\ blog中的admin.py文件

from django.contrib import admin
# Register your models here.
from  blog.models import Post
admin.site.register(Post)

C:\\ mysite2 \\ blog中的urls.py文件

from django.conf.urls import patterns, include, url
from django.views.generic import ListView, DetailView
from blog.models import Post

urlpatterns = patterns('',
                        #url(r'^$', app.views.show_homepage),  ##http://stackoverflow.com/questions/11832178/404-error-in-django-when-visiting-runserver-returns-no-errors-though/11832382#11832382


                        url('r^$', ListView.as_view(
                            queryset=Post.objects.all().order_by("-date")[:10],
                            template_name="blog.html")),

)

C:\\ mysite2 \\ blog \\ templates中的base.html文件

<h1>Django Tutorial Blog</h1>
{% block content %}
{% endblock %}

C:\\ mysite2 \\ blog \\ templates中的blog.htmls文件

{% extends "base.html" %}    <!-- think a way to mesh in html and python django (this is sytax to do it   {%  %} -->
{% block content %}

{% for post in object_list %}
<h3>{{post.title}}</h3>

<div class = "post_meta">
    on {{ post.date }}
</div>

<div class = "post_body">
    {{ post.body|safe|linebreaks}}  <!-- if linebreaks automaticaly will read it-->
</div>

{% endfor %}
{% endblock %}

順便說一句,即使我不能去127.0.0:8000 / blog或127.0.0:8000,我也可以去127.0.0:8000 \\ admin並登錄並更新博客等。如果有人可以告訴我問題是,這將使這一天變得令人驚奇,因為我已經討論了一段時間了。

謝謝,湯姆

您有錯字:

                    url('r^$', ListView.as_view(

r應該在'前面。 將行更改為此:

                    url(r'^$', ListView.as_view(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM