2016-10-13 2 views
0

Dies ist meine erste Frage überhaupt. Ich arbeite in VisualStudio, um eine Django/Python-Anwendung für Smartshopping-AI zu erstellen. Dies ist auch meine erste Python/Django-Technologie-Anwendung. Ich habe Probleme mit der URLs.py und habe gelesen, dass Django-Versionen keine URL-Muster enthalten. Ich habe meine URL-Muster geändert, um den Ratschlag online widerzuspiegeln, und habe meinen django.conf.urls-Import-URL-Abschnitt meines Codes geändert. Es funktioniert immer noch nicht. Bitte helfen Sie.VisualStudio django.conf.urls

Ich habe die Ratschläge, online gehen hier gefolgt:

from datetime import datetime 
from django.conf.urls import url 
from app.forms import BootstrapAuthenticationForm 



# Uncomment the next lines to enable the admin: 
from django.conf.urls import include 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = [ 
    # Examples: 
    url(r'^$', 'app.views.home', name='home'), 
    url(r'^contact$', 'app.views.contact', name='contact'), 
    url(r'^about', 'app.views.about', name='about'), 
    url(r'^login/$', 
     'django.contrib.auth.views.login', 
     { 
      'template_name': 'app/login.html', 
      'authentication_form': BootstrapAuthenticationForm, 
      'extra_context': 
      { 
       'title':'Log in', 
       'year':datetime.now().year, 
      } 
     }, 
     name='login'), 
    url(r'^logout$', 
     'django.contrib.auth.views.logout', 
     { 
      'next_page': '/', 
     }, 
     name='logout'), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    # url(r'^admin/', include(admin.site.urls)), 
] 

ich eine einfache Lösung wollen nicht alle Ansichten zu ändern sind hinzufügen - diese von Visual Studio automatisch generiert wurden. Ich mag autogeneraton weiter zu arbeiten und nur eine einzige Zeile Code hinzufügen, um die url.py

from django.shortcuts import render 
from django.http import HttpRequest 
from django.template import RequestContext 
from datetime import datetime 

def home(request): 
    """Renders the home page.""" 
    assert isinstance(request, HttpRequest) 
    return render(
     request, 
     'app/index.html', 
     context_instance = RequestContext(request, 
     { 
      'title':'Home Page', 
      'year':datetime.now().year, 
     }) 
    ) 

def contact(request): 
    """Renders the contact page.""" 
    assert isinstance(request, HttpRequest) 
    return render(
     request, 
     'app/contact.html', 
     context_instance = RequestContext(request, 
     { 
      'title':'Contact', 
      'message':'Your contact page.', 
      'year':datetime.now().year, 
     }) 
    ) 

def about(request): 
    """Renders the about page.""" 
    assert isinstance(request, HttpRequest) 
    return render(
     request, 
     'app/about.html', 
     context_instance = RequestContext(request, 
     { 
      'title':'About', 
      'message':'Your application description page.', 
      'year':datetime.now().year, 
     }) 
    ) 

Basierend zu verweisen auf den Antworten und die Stack-Überlauf Antwort auf eine ähnliche Frage (Django URLs error: view must be a callable or a list/tuple in the case of include()) ich diesen Ansatz versucht habe (was noch funktioniert nicht).

from datetime import datetime 
from django.conf.urls import url 
from app.forms import BootstrapAuthenticationForm 
from django.contrib.auth import views as auth_views 
from SmartShopper import views as SmartShopper_views 



# Uncomment the next lines to enable the admin: 
# from django.conf.urls import include 
# from django.contrib import admin 
# admin.autodiscover() 

urlpatterns = [ 
    # Examples: 
    url(r'^$', SmartShopper_views.home, name='home'), 
    url(r'^contact$', SmartShopper_views.contact, name='contact'), 
    url(r'^about', SmartShopper_views.about, name='about'), 
    url(r'^login/$', 
     'django.contrib.auth.views.login', 
     { 
      'template_name': 'app/login.html', 
      'authentication_form': BootstrapAuthenticationForm, 
      'extra_context': 
      { 
       'title':'Log in', 
       'year':datetime.now().year, 
      } 
     }, 
     name='login'), 
    url(r'^logout$', 
     'django.contrib.auth.views.logout', 
     { 
      'next_page': '/', 
     }, 
     name='logout'), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    # url(r'^admin/', include(admin.site.urls)), 

[was meine Lösung enthält - ich bin von einer asp.net MVC Hintergrund und django ist ein bisschen mit seinem MVC Typ-Struktur anders kommen noch daran gewöhnen, hilf mir nur thisthing Lauf zu machen! HELPPP bitte. Danke 1

+0

Können Sie bitte hinter dem entsprechenden Code, nicht den Screenshot? Bitte geben Sie auch den relevanten Abschnitt Ihrer 'views.py'-Datei an. – brianpck

+0

yep! Lass mich herausfinden, wie man das schnell macht –

Antwort

0

Sie müssen Ihre Ansichten nicht ändern. Das Problem ist immer noch in deinem urls.py. Anstatt z. B. als Zeichenfolge zu verwenden, müssen Sie die Ansicht importieren und direkt auf verweisen.

+0

sagst du mir, dass ich den Code aus einer Zeichenkette "app.views.home" nehmen und in views.home ändern soll. Kannst du mir den Code zeigen? Es tut mir leid, ich bin ein neuer Softwareentwickler und es würde helfen, wenn Sie dumm wären. –

+0

von Datetime-Importdatetime von django.conf.urls importieren url von app.forms BootstrapAuthenticationForm importieren # Kommentar- der nächsten Zeilen der Admin zu aktivieren: # von django.conf.urls importieren umfassen # von django. contrib Import Admin # admin.autodiscover() urlpatterns = [ # Beispiele: url (r '^ $', views.home, name = 'Heimat'), ist –

+0

nicht. sagt, dass Ansichten nicht definiert ist. –

0

Nach mehr über die Django Framework von diesen youtube Tutorial lernen konnte ich meinen Code beheben (https://www.youtube.com/watch?v=nAn1KpPlN2w&index=3&list=PL6gx4Cwl9DGBlmzzFcLgDhKTTfNLfX1IK#t=4.759461)

Was ich gelernt habe, war, dass jedes „app“ ist ein Segment des Programms mit dem dazugehörigen Ansichten. Alles, was ich zu tun hatte, war, alle Ansichten von my_app oder app oder was auch immer Sie Ihre neue "app" in Django anrufen zu importieren. Neben der geringfügigen Änderung der URL-Muster von() auf [] habe ich nur den URL-Aufruf geändert, um von den app_views, die ich oben eingerichtet habe, zu ziehen. Hier ist der Funktionscode. Ich habe einen "Server error (500)", was etwas anderes ist, das ich herausfinden werde, aber bitte erklärt etwas mehr für Entwickler, die einfach neu im Django-Framework sind. Visualstudio ist ein gutes Werkzeug. Benutze es für Python. Wenn Sie Fragen haben, wenden Sie sich bitte an mich. Ich würde dem Neuling gerne helfen. Hier ist mein Funktionscode.

from datetime import datetime 
from django.conf.urls import url 
from app.forms import BootstrapAuthenticationForm 
from django.contrib.auth import views as auth_views 
from app import views as app_views 



# Uncomment the next lines to enable the admin: 
# from django.conf.urls import include 
# from django.contrib import admin 
# admin.autodiscover() 

urlpatterns = [ 
    # Examples: 
    url(r'^$', app_views.home, name='home'), 
    url(r'^contact$', app_views.contact, name='contact'), 
    url(r'^about', app_views.about, name='about'), 
    url(r'^login/$', 
     auth_views.login, 
     { 
      'template_name': 'app/login.html', 
      'authentication_form': BootstrapAuthenticationForm, 
      'extra_context': 
      { 
       'title':'Log in', 
       'year':datetime.now().year, 
      } 
     }, 
     name='login'), 
    url(r'^logout$', 
     auth_views.logout, 
     { 
      'next_page': '/', 
     }, 
     name='logout'), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    # url(r'^admin/', include(admin.site.urls)), 
] 
Verwandte Themen