Можно ли обслуживать статическую html-страницу в корне проекта django?
у меня есть приложение django, размещенное на pyhtonanywhere. Приложение находится в username.pythonanywhere.com/MyApp
. Я хотел бы обслуживать статическую html-страницу в username.pythonanywhere.com
. Возможно ли это? По сути, он будет служить индексом, связывающим с /MyApp
, /MyApp2
, и другие будущие приложения.
Я не могу найти никакой информации о том, как это сделать, но я предполагаю, что мне нужно изменить mysite/mysite/urls.py
как переход к root в настоящее время дает мне 404 с сообщениями о неспособности найти совпадение в URL-адресах.
urlpatterns = [
url(r'^/$', ???),
url(r'^admin/', include(admin.site.urls)),
url(r'^MyApp/', indluce('MyApp.urls')).
]
предыдущей - моя догадка (плохо знаю). Это должно (поправьте меня, если я ошибаюсь) соответствовать корневому URL-адресу, но я понятия не имею, как сказать "Эй, django просто ищет статический файл", или где этот статический html должен жить, или как сказать django, где он живет.
постарайтесь не отрезать мне голову. Я новичок в django.
P.S. Я использую django 1.8 в virtualenv на PA
2 ответов
конечно можно. В случаях, когда мне просто нужно отобразить шаблон, я использую TemplateView. Пример:
url(r'^$', TemplateView.as_view(template_name='your_template.html'))
обычно я заказываю шаблоны URL из большинство конкретных меньше конкретными, чтобы избежать неожиданных матчей:
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')),
]
что касается того, где Django ищет шаблоны, это зависит от вашей конфигурации, чтобы сказать Django, где искать: https://docs.djangoproject.com/en/1.8/topics/templates/#configuration
на PythonAnywhere вы можете использовать средство статических файлов вашего веб-приложения для обслуживания статического файла, прежде чем он попадет в Django:
поместите файл с именем index.html в каталоге, а затем укажите статическую запись файла в этот каталог. Если статический URL-адрес файла / и каталог является тем, в котором находится файл html, файл будет обслуживаться в /.
имейте в виду, что вы не хотите, чтобы каталог был выше любого вашего кода, или вы будете выставлять свой код как статические файлы i.e вы не хотите использовать каталог /где-то/мля, если код В /где-то/бла/код, вы хотите, чтобы положить его в /где-то/no_code_here