2017-08-11 4 views
0

Gestern arbeitete ich an meinem Django-Projekt und es funktionierte ziemlich gut, aber heute, als ich den Server lief und versuchte, auf meine Seite zuzugreifen, hat es nicht funktioniert.404 Seite nicht gefunden Django

Fehlermeldung:

Page not found (404) 
Request Method: GET 
Request URL: http://127.0.0.1:8000/Oraculum_Data/cancerColo/ 

Using the URLconf defined in Oraculum.urls, Django tried these URL patterns, in this order: 
^admin/ 
^Oraculum_Data/ ^$ 
^Oraculum_Data/ ^Oraculum_Data/login/$ 
^Oraculum_Data/ ^Oraculum_Data/cancerColo/$ 
^Oraculum_Data/ ^Oraculum_Data/api/data/$ 
^Oraculum_Data/ ^Oraculum_Data/api/chart/data/$ 
The current path, Oraculum_Data/cancerColo/, didn't match any of these. 

meine URL-Muster:

urlpatterns = [ 
    url(r'^admin/', include('Oraculum_Data.urls')), 
    url(r'^Oraculum_Data/', include('Oraculum_Data.urls')) 
] 

meine URL-Muster in Oraculum_Data App:

from django.conf.urls import url 
from . import views 
from django.contrib.auth.views import login 



    urlpatterns = [ 
     url(r'^$', views.home), 
     url(r'^Oraculum_Data/login/$', login, {'template_name': 'Oraculum_Data/login.html'}), 
     url(r'^Oraculum_Data/cancerColo/$', views.cancerColo), 
     url(r'^Oraculum_Data/api/data/$', views.get_data), 
     url(r'^Oraculum_Data/api/chart/data/$', views.ChartData.as_view()), 
    ] 

meine Oraculum_Data App views.py Datei:

from django.http import JsonResponse 
from django.shortcuts import render, HttpResponse 
import requests 
import pandas as pd 

from rest_framework.views import APIView 
from rest_framework.response import Response 

def home(request): 
    name = "Test name" 

    args = {'MyName' : name} 
    return render(request, 'Pages/HomePage.html', args) 

def cancerColo(request): 
    response = requests.get('http://sage.saude.gov.br/graficos/cancerMamaColo/cancerColo3544.php?output=json') 
    response_json = response.json() 
    df = pd.DataFrame(response_json['resultset'], columns=['Ano', 'Branca', 'Amarela', 'Ignorada', 'Indigena', 'Parda', 'Preta']) 
    args = {'dataframe' : df.to_html(classes="table table-striped"), 'name' : 'Câncer de colo de útero (por raça)'} 
    return render(request, 'Pages/CancerColo.html', args) 

def get_data(request, *args, **kwargs): 
    data = { 
     "sales" : 100, 
     "customers" : 10, 
    } 
    return JsonResponse(data) # http response 

class ChartData(APIView): 
    authentication_classes = [] 
    permission_classes = [] 

    def get(self, request, format=None): 
     """ 
     Return a list of all users. 
     """ 
     data = { 
     "sales" : 100, 
     "customers" : 10, 
     } 
     return Response(data) 

Einstellungen:

INSTALLED_APPS = [ 
    'rest_framework', 
    'Oraculum_Data', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 

Die Homepage noch ganz gut funktioniert, aber die andere nicht.

Es stimmt etwas nicht mit dem Code? Es hat gestern funktioniert.

+0

Sie definiert den ersten Teil des Pfades auch im apps urlpattern. Entferne es von dort. –

Antwort

3

Sie haben die Zeichenfolge "Oraculum_Data" zweimal in diesen URLs; eine, wenn Sie das App-Muster und eins in jedem der Muster einfügen. Sie sollten die zweite entfernen - die Muster sollten nur sein:

urlpatterns = [ 
    url(r'^$', views.home), 
    url(r'^login/$', login, {'template_name': 'Oraculum_Data/login.html'}), 
    url(r'^cancerColo/$', views.cancerColo), 
    url(r'^api/data/$', views.get_data), 
    url(r'^api/chart/data/$', views.ChartData.as_view()), 
] 
+0

Danke! Es hat funktioniert –