2015-06-04 3 views
7

Ich habe eine Django-App auf pyhtonanywhere gehostet. Die App befindet sich unter username.pythonanywhere.com/MyApp. Ich möchte eine statische HTML-Seite bei username.pythonanywhere.com dienen. Ist das möglich? Im Wesentlichen würde es als ein Index dienen, der mit /MyApp, /MyApp2 und anderen zukünftigen Anwendungen verbindet.Ist es möglich, eine statische HTML-Seite im Stammverzeichnis eines Django-Projekts bereitzustellen?

Ich kann nicht scheinen, irgendwelche Informationen darüber zu finden, wie man das tut, aber ich nehme an, dass ich mysite/mysite/urls.py als das Navigieren zu root ändern muss, gibt mir 404 mit Nachrichten über das Finden einer Übereinstimmung in URLs fehl.

Das vorherige ist meine beste Schätzung (eine schlechte, die ich kenne). Das sollte (korrigiere mich, wenn ich falsch liege) mit der Wurzel-URL übereinstimmen, aber ich habe keine Ahnung, wie ich "hey django suche nur nach einer statischen Datei" oder wo das statische html leben soll, oder wie man es django sagt wo es ist Leben.

Versuchen Sie nicht, mir den Kopf abschneiden. Ich bin ganz neu beim Django.

P.S. Ich benutze django 1.8 in einem virtualenv auf PA

Antwort

9

Natürlich können Sie. In Fällen, in denen ich nur eine Vorlage rendern muss, verwende ich TemplateView. Beispiel:

url(r'^$', TemplateView.as_view(template_name='your_template.html')) 

ich meine URL-Muster in der Regel bestellen von meisten spezifisch für dest spezifisch für unerwartete Begegnungen zu vermeiden:

from django.views.generic import TemplateView 

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^MyApp/', include('MyApp.urls')), 
    url(r'^$', TemplateView.as_view(template_name='your_template.html')), 
] 

Soweit wo Django sucht nach Vorlagen, es ist bis zu Ihrer Konfiguration, um Django zu sagen, wo es aussehen soll: https://docs.djangoproject.com/en/1.8/topics/templates/#configuration

+0

und die html-Datei lebt in 'mysite/mysite/templates /'? – thedarklord47

+1

Sie befindet sich an der Stelle, an der Sie im 'DIRS'-Wert in der Config angegeben haben. Dies ist eine Liste von Verzeichnispfaden. – Brandon

+0

ah hat das letzte bisschen mit dem Doc-Link nicht gesehen. Danke mein Herr! – thedarklord47

3

In PythonAnywhere können Sie die statische Dateifunktion Ihrer Webanwendung verwenden, um die statische f zu bedienen Bevor es nach Django geht:

Setzen Sie eine Datei namens index.html in ein Verzeichnis und zeigen Sie dann einen statischen Dateieintrag in dieses Verzeichnis. Wenn die URL der statischen Datei/ist und das Verzeichnis die Datei mit der html-Datei enthält, wird die Datei unter/bereitgestellt.

Achten Sie darauf, dass das Verzeichnis nicht über Ihrem Code liegt, oder Sie geben Ihren Code als statische Dateien frei, dh Sie möchten das Verzeichnis/somewhere/blah nicht verwenden, wenn Ihr Code darin enthalten ist/irgendwo/blah/code, du willst es in/somewhere/no_code_here setzen

Verwandte Themen