如何使用django简单地为index.html提供服务?

时间:2015-12-23 20:43:34

标签: python html django

SOF,

我刚在我的ubuntu盒子上安装了django 1.9。

我想部署一个轻量级的django应用程序。

我这样做了:

cd ~
django-admin startproject dj10
cd ~/dj10/dj10/
mkdir templates
echo hello > templates/index.html

如何配置 ~/dj10/dj10/ 这样django将服务~/dj10/dj10/templates/index.html 当我获得/index.html时 ??

我尝试编辑~/dj10/dj10/urls.py所以看起来像这样:

from django.conf.urls import url
from django.contrib import admin

from . import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.index, name='index'),
]

然后我添加了这个文件:

~/dj10/dj10/views.py

看起来像这样:

from django.shortcuts import render

def index(request):
    context = {}
    return render(request, 'index.html', context)

接下来我启动了服务器:

cd ~/dj10/
python manage.py runserver

这就是我想要发生的事情。

  • Browswer GET /index.html
  • ~/dj10/dj10/urls.py/index.htmlviews.index
  • 相匹配
  • python在index()
  • 内运行views.py
  • index()在此处找到index.html~/dj10/dj10/templates/index.html
  • index()呈现index.html

相反,我看到了这一点:

Page not found (404)
Request Method:     GET
Request URL:    http://lh:8000/index.html

Using the URLconf defined in dj10.urls, Django tried these URL patterns, in this order:
    ^admin/
    ^$ [name='index']
The current URL, index.html, didn't match any of these.

那么,我可能在urls.pyviews.py中出现语法错误? 也许我应该添加一些语法... ~/dj10/dj10/settings.py ??

这是一个问题:

如何配置 ~/dj10/dj10/ 这样django将服务~/dj10/dj10/templates/index.html 当我获得/index.html时 ??

2 个答案:

答案 0 :(得分:0)

我不明白为什么要专门提供网址" index.html"。您已将Django配置为响应路径" /"来提供该HTML文件,这是正确的做法。没有理由在路径中使用模板名称,最好不要这样做。

如果您确实因某些原因想要这样做,则需要在urls.py中指定确切的文件路径:

 url(r'^index.html$', views.index, name='index'),

但正如我所说,你不应该这样做。

答案 1 :(得分:0)

使用Django SIMPLY为index.html提供服务非常容易:

git clone https://github.com/heroku/python-getting-started dj101
cd dj101
vi hello/templates/index.html
pip install -r requirements.txt
git commit -am hello
heroku local
heroku create dj101
git push heroku master