django url 生效_Django中二级路由无法生效问题?

我按照这个教程的part2部分http://www.liujiangblog.com/c...。可是到了视图部分,polls页面可以显示,其子页面无法显示。原先以为是我的环境配置出了问题,教程上是Django1.11.7,我原先用的Django2.0.1.卸载了2.0重新安装1.11.7之后,还是显示404错误。

求教问题出在哪里?

这是项目结构

下面是view.py

from django.http import HttpResponse

from .models import Question

def index(request):

latest_question_list = Question.objects.order_by('-pub_date')[:5]

output = ', '.join([q.question_text for q in latest_question_list])

return HttpResponse(output)

def detail(request, question_id):

return HttpResponse("You're looking at question %s." % question_id)

def results(request, question_id):

response = "You're looking at the results of question %s."

return HttpResponse(response % question_id)

def vote(request, question_id):

return HttpResponse("You're voting on question %s." % question_id)

model.py

from django.db import models

# Create your models here.

from django.db import models

from django.utils import timezone

import datetime

from django.utils.encoding import python_2_unicode_compatible

@python_2_unicode_compatible

class Question(models.Model):

question_text = models.CharField(max_length=200)

pub_date = models.DateTimeField('date published')

def __str__(self):

return self.question_text

def was_published_recently(self):

return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

@python_2_unicode_compatible

class Choice(models.Model):

question = models.ForeignKey(Question, on_delete=models.CASCADE)

choice_text = models.CharField(max_length=200)

votes = models.IntegerField(default=0)

def __str__(self):

return self.choice_text

这是polls/urls.py的代码

from django.conf.urls import url

from . import views

urlpatterns = [

# ex: /polls/

url(r'^$', views.index, name='index'),

# ex: /polls/5/

url(r'^(?P[0-9]+)/$', views.detail, name='detail'),

# ex: /polls/5/results/

url(r'^(?P[0-9]+)/results/$', views.results, name='results'),

# ex: /polls/5/vote/

url(r'^(?P[0-9]+)/vote/$', views.vote, name='vote'),

]

这是主目录perfectCRM下的urls.py

from django.conf.urls import include, url

from django.contrib import admin

urlpatterns = [

url(r'^polls/', include('polls.urls',namespace="polls")),

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

]

这是settings.py的主要部分

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'polls.apps.PollsConfig',

]

MIDDLEWARE = [

'django.middleware.security.SecurityMiddleware',

'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 = 'perfectCRM.urls'

TEMPLATES = [

{

'BACKEND': 'django.template.backends.django.DjangoTemplates',

'DIRS': [os.path.join(BASE_DIR, 'templates')]

,

'APP_DIRS': True,

'OPTIONS': {

'context_processors': [

'django.template.context_processors.debug',

'django.template.context_processors.request',

'django.contrib.auth.context_processors.auth',

'django.contrib.messages.context_processors.messages',

],

},

},

]

WSGI_APPLICATION = 'perfectCRM.wsgi.application'

# Database

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

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'perfect_crm',

'HOST': '127.0.0.1',

'USER': 'root',

'PASSWORD': '199033',

'PORT': '3306',

}

}

# Password validation

# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [

{

'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',

},

{

'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',

},

{

'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',

},

{

'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',

},

]

求大神帮忙看下,问题究竟出在哪里!万分感谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django_celery_beat是一个django应用程序,它允许您使用celery定期运行周期性任务。这些周期性任务可以是一次性的或循环的,你可以设置它们在指定的时间间隔内自动运行,也可以设置它们在特定的时间运行。 要使用django_celery_beat,请按照以下步骤操作: 1. 安装django_celery_beat: ``` pip install django_celery_beat ``` 2. 在settings.py添加以下代码: ``` INSTALLED_APPS = [ # ... 'django_celery_beat', ] CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler' ``` 3. 在项目的urls.py文件添加以下代码: ``` from django.urls import path from django_celery_beat.views import ( PeriodicTaskListView, PeriodicTaskCreateView, PeriodicTaskUpdateView, PeriodicTaskDeleteView, PeriodicTaskDetailView, ) urlpatterns = [ # ... path('celery/periodic-tasks/', PeriodicTaskListView.as_view(), name='periodic_task_list'), path('celery/periodic-task/add/', PeriodicTaskCreateView.as_view(), name='periodic_task_create'), path('celery/periodic-task/<int:pk>/', PeriodicTaskDetailView.as_view(), name='periodic_task_detail'), path('celery/periodic-task/<int:pk>/update/', PeriodicTaskUpdateView.as_view(), name='periodic_task_update'), path('celery/periodic-task/<int:pk>/delete/', PeriodicTaskDeleteView.as_view(), name='periodic_task_delete'), ] ``` 4. 在celery.py文件添加以下代码: ``` from celery import Celery from django.conf import settings app = Celery('my_project') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) ``` 5. 在tasks.py文件创建您的任务,例如: ``` from celery import shared_task @shared_task def my_task(): # Do something here ``` 6. 创建周期性任务,您可以使用Django admin或创建它们的视图。 现在,您已经可以在django使用celery定期运行周期性任务了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值