开发第一个Template

TEMPLATE的静态变量,当时我们一句话就带过了。TEMPLATE静态变量下面有好几个键值对,把"BACKEND"后面的值改成我们想要用的模板引擎就可以了。我们项目使用Django自己的引擎就行了。

render就是我们Django在生成blog这个应用的时候自动添加进来的这么一个模块,这么一个函数叫render
# -*- coding: utf-8 -*-
from __future__ import unicode_literals from django.shortcuts import render # Create your views here.
render翻译成中文应该叫渲染,我们应该用这个东西把HTML页面响应给浏览器。render()这个函数有很多个参数。传第三个参数即可,前两个是必须的。request是请求这个对象本身,也就是函数index(request).第二个就是我们的模板文件index.html,第三个参数是我们传递到前端的这个数据,就是我们后台传递到前端的数据。

看一下模板语言也就是DTL的使用方法。

render的第三个参数呢是用来传递数据到前端的。这个参数支持一个字典类型的数据。字典是键值对,字典的键是参数名,就是我们前端到时候获取到的参数名,值就是要传递的数据。HTML文件来使用这个数据。
Django模板也同时支持像if,for循环这种比较简单的逻辑操作。

把blog2添加到INSTALLED_APPS里面。
# Application definition INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog'
]

Django把这两个index.html给搞混乱了。Django在查找Template的时候会按照settings.py中的
INSTALLED_APPS
里添加的顺序来查找Templates。所以不同应用下的Template就是我们的模板HTML文件,如果名字相同,就会造成冲突。改名肯定能解决问题,但是如果有几百个页面怎么办呢,这肯定不是最优解。


def index(request):
#return HttpResponse('Hello, world!');
#return render(request,'index.html',{'hello': 'Hello,Blog'})
return render(request, 'blog/index.html')
# Create your views here.
def index(request):
return render(request, 'blog2/index.html')
直接把前面Template的全路径给省略了。


blog\views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals from django.shortcuts import render # Create your views here. #from django.shortcuts import render
from django.http import HttpResponse
def index(request):
#return HttpResponse('Hello, world!');
#return render(request,'index.html',{'hello': 'Hello,Blog'})
return render(request, 'blog/index.html')
blog2\views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render # Create your views here.
def index(request):
return render(request, 'blog2/index.html')
blog2\index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--
<h1>Hello,Blog</h1>
-->
<h1>Hello,Blog2!</h1>
</body>
</html>
blog\index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--
<h1>Hello,Blog</h1>
-->
<h1>Hello,Blog! </h1>
</body>
</html>
myblog\urls.py
"""myblog URL Configuration The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url,include
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls')), #函数叫bv.index(),括号去掉
url(r'^blog2/', include('blog2.urls')),
]
blog2\urls.py
from django.conf.urls import url from . import views urlpatterns = [
url(r'^index/$', views.index), ]
blog\urls.py
from django.conf.urls import url from . import views urlpatterns = [
url(r'^index/$', views.index), ]
myblog\settings.py
# Application definition INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
'blog2'
]
开发第一个Template的更多相关文章
- Django入门2--Django的应用和开发第一个Template
Django创建应用的命令: 应用的目录: 开发第一个Template:
- Vue 全家桶 + Electron 开发的一个跨三端的应用
代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...
- 我开发了一个产品--Markdown Notes
大家好,我开发了一个工具类软件产品--Markdown Notes,中文名是Markdown笔记.想写一篇有关它的文章,目的就是为了推广.推广.推广:) BTW:本文就是用这个工具所写的.
- [Ruby on Rails系列]3、初试Rails:使用Rails开发第一个Web程序
本系列前两部分已经介绍了如何配置Ruby on Rails开发环境,现在终于进入正题啦! Part1.开发前的准备 本次的主要任务是开发第一个Rails程序.需要特别指出的是,本次我选用了一个(Paa ...
- honeywell D6110开发的一个工厂仓库追溯识别
近日.接触并开发了一个用honeywell D6110 二维扫描PDA的项目,应用也比較简单. 就是货品物料编码.通过中间码相应,然后中间码再依照不同OEM品牌须要生成各种商品条码并带有流水号. 要求 ...
- 开发部署一个简单的Servlet
Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...
- WPF和Expression Blend开发实例:一个样式实现的数字输入框
原文:WPF和Expression Blend开发实例:一个样式实现的数字输入框 今天来一个比较奇淫技巧的手法,很少人用,同时也不推荐太过频繁的使用. 先上样式: <Style x:Key=&q ...
- 使用Kotlin开发第一个Android应用
直奔主题 第一步:为AndroidStudio安装Kotlin插件 在线安装步骤:File—>Settings—>Plugins—>Install JetBrains plugin… ...
- 原来这样就可以开发出一个百万量级的Android相机
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由QQ空间开发团队发表于云+社区专栏 最近我负责开发了一个跟Android相机有关的需求,新功能允许用户使用手机摄像头,快速拍摄特定尺寸 ...
随机推荐
- 关于微信小程序getUserInfo最新修改后,如何在原有项目的授权逻辑的调整
今天一大早调试小程序,结果出现这个...微信小程序也是醉了,这么大的改动,也没有通过开发者服务号通知一声 人在屋檐下不得不低头(改呗,那么如何以最小的代价更新呢,下面给我的解决方案) 原来我们在首次进 ...
- 13-看图理解数据结构与算法系列(Trie树)
Trie树 Trie树,是一种搜索树,也称字典树或单词查找树,此外也称前缀树,因为某节点的后代存在共同的前缀.它的key都为字符串,能做到高效查询和插入,时间复杂度为O(k),k为字符串长度,缺点是如 ...
- ..net 3.5新特性之用this关键字为类添加扩展方法
具体用法如下: public static class ClassHelper { //用this 声明将要吧这个方法附加到Student对象 public static bool CheckName ...
- stm32 调试时卡在LDR R0, =SystemInit
网上找到的可能的原因 堆栈空间默认的太小 默认startup_stm32f10x_hd.s中 Stack_Size EQU 0x00000400,如果改大之后,可能调试就可以正常运行. 出现最多的情况 ...
- STM32F407 跑马灯 库函数版 个人笔记
原理图: MCU在开发板原理图的第二页,LED在开发板原理图的第三页 由图可知,PF9 ,PF10 若输出低电平则灯亮,高电平则灯灭 选推挽输出 代码步骤 使能IO口时钟. 调用函数RCC_AHB1P ...
- DRF:过滤&搜索&排序功能
过滤功能利用的是第三方包 django_filters,搜索和排序利用的是 Django DRF 提供的 filters 示例代码如下: from rest_framework import filt ...
- Spring Boot Jpa 表名小写转大写
今天在使用SpringBoot整合Hibernate后创建表,表名为小写,而在linux下,mysql的表名是区分大小写的,因此在我的数据表中,就出现了两个一样的表 act_id_user 和 AC ...
- ajax异步获取数据后动态向表格中添加数据(行)
因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ...
- 2018/2/17 SpringCloud的一个简单小介绍
在学习SpringCloud之前,我以为SpringCloud是与Double一样,只是个单纯的RPC框架.但在今天的学习中,我发现并非如此,事实上,SpringCloud是多个框架的集合,感觉Spr ...
- 笔记:Javac编译器
Javac编译器是把 *.java 文件转换为 *.class 文件,是一个前端编译器:对应着有一种把字节码转变为机器码的编译器,称为JIT编译器(Just In Time Compiler),比如 ...