Можно ли обслуживать статическую 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