2015-06-04 13 views
7

Ho un'applicazione django ospitata su pyhtonanywhere. L'app si trova allo username.pythonanywhere.com/MyApp. Vorrei pubblicare una pagina html statica allo username.pythonanywhere.com. È possibile? Essenzialmente servirebbe come un indice che collega a /MyApp, /MyApp2 e ad altre app future.È possibile pubblicare una pagina html statica alla radice di un progetto django?

Non riesco a trovare alcuna informazione su come eseguire questa operazione, ma presumo di dover modificare mysite/mysite/urls.py poiché la navigazione verso root attualmente mi dà un 404 con messaggi relativi alla mancata individuazione di una corrispondenza negli URL.

urlpatterns = [ 
     url(r'^/$', ???), 
     url(r'^admin/', include(admin.site.urls)), 
     url(r'^MyApp/', indluce('MyApp.urls')). 
] 

Il precedente è la mia ipotesi migliore (una cattiva che conosco). Questo dovrebbe (correggimi se sbaglio) corrisponde all'URL della radice, ma non ho idea di come dire "hey django cerca solo un file statico", o dove dovrebbe vivere l'html statico, o come dire a django dove vite.

Cerca di non tagliarmi la testa. Sono nuovo di zecca con Django.

P.S. Sto usando django 1.8 in un virtualenv su PA

risposta

9

Certo che puoi. Nei casi in cui ho solo bisogno di renderizzare un modello, io uso un TemplateView. Esempio:

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

solito ordinare i miei modelli di URL da più specifico per almeno specifica per evitare incontri inaspettati:

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')), 
] 

Per quanto riguarda dove Django cerca i modelli, è fino al vostro configurazione per dire a Django dove cercare: https://docs.djangoproject.com/en/1.8/topics/templates/#configuration

+0

e il file html risiede in 'mysite/mysite/templates /'? – thedarklord47

+1

Vive in qualsiasi posto specificato nel valore 'DIRS' nella config, che è un elenco di percorsi di directory. – Brandon

+0

ah non ho visto l'ultimo bit con il collegamento doc. grazie Signore! – thedarklord47

3

Su PythonAnywhere, è possibile utilizzare la funzione di file statici della propria app Web per servire la static f prima che arrivi a Django:

Mettere un file chiamato index.html in una directory e quindi puntare una voce di file statico in quella directory. Se l'URL del file statico è/e la directory è quella con il file html al suo interno, il file verrà servito in /.

Ricorda che non vuoi che la directory sia sopra il tuo codice o esporrai il tuo codice come file statici, ovvero non vuoi usare la directory/da qualche parte/blah se il tuo codice è in/da qualche parte/blah/codice, vorrai metterlo in/da qualche parte/no_code_here

Problemi correlati