一步一步的django学习---002

项目的执行分析:

在001篇中的简单项目,我们可以对项目的执行做出如下分析:

1.服务器执行开始,根据settings中的ROOT-INF的设置,调入urls的内容,

2.从urls中urlpattern下的url()的顺序,来对应我们在浏览器地址栏中输入的地址,如果地址栏中:127.0.0.1:8000/xxx后的xxx为index则默认执行第一个urlpattern.匹配成功之后,通常会执行url()右端参数的操作。

3.我们的简单例子中是view.hello,也就是说执行view文件中的hello函数

4.hello函数返回的是HttpResponse()函数值,也就是对应的参数值。将它进行返回。浏览器得到对应的值,并进行显示。结束。

从上面四点,我们大概了解到了django的执行过程 urls->url()->对应往下执行。

视图和数据分离:

那么,现在我们做如下修改,数据和视图进行分离。什么意思呢?就是数据放在一个地方,而视图不是直接显示数据,而是一个变量。

将view中的hello函数做如下修改:

def hello(request):

      context        ={}

      context['hello'] = 'helloGHJ!'

      return render(request,'hello.html',context)

在这里,我要做下解释,相信context很好理解,相当于数组,或者说字符串形式A【b】,第一句是定义一个字符串,第二句是设定字符串中的值。

 那么接下来就是render函数了。render函数具体的参数及其作用是什么,我不是很清楚,但是,根据执行情况,我们可以做出如下猜想,request,是获得hello.html中的变量值,然后将变量值带入context中,获得变量具体的值,也就是说此时,通过request,将变量和context似字符串的字符串进行相关联,具体z值代入hello.html中,将它进行返回,显示出了对应的view,这里的视图在html文件中,通过request,将字符串和变量关联。则可以将数据放在字符串中,变量放在视图中,这是实现数据和视图的分离方式之一。

下面,我们要创建一个templates文件夹,用来存放html文件,这是django模板方面的内容,我在这里进行简单说明,具体参照003进行配置Templates文件夹。在根目录下创建templates文件夹,找到在settings文件的TEMPLATES下的DIR部分的[],这个符号内部输入BASE_DIR + “/templates”, 说明模板的位置。在模板下新建hello.html文件,在文件中输入<p>{{hello}} 即可,这里的hello相当于一个变量。被view中的hello引用。

最后在cmd中输入:python  manage.py runserver 启动服务器。

温馨提示:如果在运行过程中因为运行错误而去修改了view.py等核心组件,请务必重启服务器再做测试,然后一定要有耐心,因为真的不难,就是细节很重要

敢于面对难题,敢于面对自己。
原文地址:https://www.cnblogs.com/cittysteven/p/9546546.html