之前入了门,那么这篇文章我们继续学习一下django的内部逻辑
参考资料:菜鸟教程
首先创立一个HelloWorld工程,并创建出来hello world页面,这里跟“入门”那一篇不同的是,没有创建app,直接在HelloWorld里面创建view.py,目录:
#view.py
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello World !")
#urls.py
#添加下面URL映射到urlpatterns
url(r'^hello/$', hello)
运行结果当然是:
下面开始这一篇的正文
Django 模板
模板是一个文本,用于分离文档的表现形式和内容。
在模板中定义html页面的样式,通过视图向模板中添加数据
上面在页面中输出hello world的方法,是调用了django.http.HttpResponse(),这种方式将视图和模板混合在一起,不符合django的MVC思想。
MVC:模型M,视图V,控制器C
接下来,我们学习模板,分离页面形式和数据
我们接着上面的项目将在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件,整个目录结构如下:
在templates文件夹下面建立页面:hello.html
#hello.html
<h1>{{ hello }}</h1>
变量使用双括号
接下来我们需要向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+”/templates”,],如下所示:
我们现在修改view.py,用于向模板提交数据:
# view.py
from django.http import HttpResponse
from django.shortcuts import render
def hello(request):
# return HttpResponse("Hello World !")
context = {}
context['hello'] = 'Hello World!'
return render(request, 'hello.html', context)
我们这里使用render来替代之前使用的HttpResponse。render还使用了一个字典context作为参数。
context 字典中元素的键值 “hello” 对应了模板中的变量 “{{ hello }}”。
运行结果:
django模板标签
模板中有django自己的一套语法,菜鸟教程里面讲过,但是我这里因为还没有实践,先略过,之后用到的时候再回头来详细学。
Django 模型
Django 对各种数据库提供了很好的支持,web常用的是MySQL,这里就以MySQL为例:
具体连接数据库的方法,见我的另一篇博客:django连接Mysql数据库