django搭建网站记录二

视图

视图是Django应用中的一“类”网页。它使用特定的模板,并具有特定的功能。例如,我们搭建的实验室网站上就应该有首页,实验室简介等页面。在Django中,网页的页面和其他内容是由视图负责生成的。这里,视图有了另外一个含义。每个视图都是由一个简单的Python函数表示的(对于基于类的视图,一个视图是用一个方法来表示的)。Django通过检查请求的URL(准确地说,是URL里域名之后的那部分)来选择使用哪个视图。Django使用叫做‘URLconfs’的配置来为URL匹配视图。每个URLconf负责将一种URL模式匹配(使用正则表达式)到视图。

在第一部分我们新建了应用bigdata,在bigdata/views.py中我们编写首页的简单视图,这里先用一句话显示,后续再加入模板来表示。

bigdata/views.py
--------------------------------------------------------------
    from django.http import HttpResponse
    def index(request):
        return HttpResponse("here will be the homepage~")

然后为了能够调用这个视图函数,我们需要将它映射到URL上,所以在bigdata应用内部创建URLConf,即新建一个bigdata/urls.py

bigdata/url.py
-----------------------------------------------------
from django.conf.urls import patterns, url

from bigdata import views


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

但是,我们项目中的主URLConf还不知道应用中的URL,所以需要建立他们之间的链接,在labsite/urls.py中加入:

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    url(r'^bigdata',include('bigdata.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

url各个参数的意义可以在docment中具体看。
现在我们已经告知了项目我们为http://localhost:8000/bigdata/ 这个链接定义了index视图,在浏览器中访问后就会根据index视图函数来显示页面的内容.

模板

下面我们开始编写有意义的视图,首先在应用下新建模板文件夹存放这个应用所对应的所以模板文件,组织方式如下:bigdata/templates/bigdata/index.html…
这么组织的原因我摘下了docment翻译文件中的部分:

组织模板文件
我们可以将我们所有的模板聚在一起,放在一个大的模板目录下。这些模板可以运行地很好。然而,这些模板属于投票应用,不像我们在先前教程中创建的管理站点模板一样,我们将把它们放在应用内的模板目录下(polls/templates)而不是项目模板目录下(templates)。我们将在可重用的应用程序教程中详细地讲解为什么我们要这么做。

在你刚刚创建的templates文件夹下,创建另一个叫做polls的文件夹,并在里面创建一个叫做index.html的文件。换句话说,你的模板文件应该位于polls/templates/polls/index.html。由于app_directories模板加载器会像上面讲到的那样在应用文件夹下的“templates”子文件夹里查找模板,你可以参考以上的模板文件组织方法,并在Django中使用polls/index.html来简单地调用这个模板文件。

模板命名空间
  现在,我们可以 直接将我们的模板文件放在polls/templates文件夹中(而不是另外在这个文件夹下创建一个polls子文件夹),但是这真的不是一个好主意。Django将调用它能找到的第一个名字符合的模板文件。如果在你的不同的应用中存在着拥有相同名字的模板文件,Django将不能区分他们。使用命名空间是一个可以让Django找到正确的模板的最简单的方式。命名空间的具体实现方式是,将这些模板文件放在以应用的名字来命名的另一个文件夹下。
在templates中创建index.html后,修改bigdata/views.py中的index函数,(使用了快捷方式render())

from django.shortcuts import render

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

注:后面晚上代码时注意可以使用get_object_or_404()和get_list_or_404()函数来处理异常情况

静态文件

之前有写过django1.7如何配置静态文件 : link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值