106-一个简单的模板

1、之前做出来的网页,只是简单地返回了我们手写的静态内容:这是第一个页面。页面虽然简单,但是五脏俱全,已经涉及到了django的更多方面。

在django中,大量的页面都是动态的,它们基于models,forms或其他,由views加工,然后由templates里的网页模板显示出来。

2、在test_app下面建立一个文件夹:templates,里面用来放置后面要用到的网页模板。

请注意,使用路由的方式,这个templates可以直接被使用,无需任何设置。

例如有了test_app/xxxxxx/这样的网址,如果xxxxxx对应一个views函数,而函数的渲染对象是templates下的某个html文件,文件可以直接被找到。仅当某个templates文件夹不属于任何app,而是直接放在项目文件夹下,用来作为公用,才需要去setting里进行设置,后面实际的项目中会提到。

3、编写测试页面,当前不基于任何动态内容,仍然是写定的内容

可以看到这个模板文件,几乎都是html标签,没有django模板标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>First Temp</title>
</head>
<body>
    <h1>一个模板页面</h1>
    <p>可以使用网页标签,带各种格式</p>
    <p>使用html5标准</p>
    <p>但是内容仍然是我们事先写在模板里的,并不是动态渲染出来</p>
    <p>views函数返回时,使用return render()</p>
</body>
</html>

4、写views函数

现在将用到一个最常见的返回django网页模板的写法:

# 返回一个静态的模板页面
def first_temp(request):
    return render(request, ‘first_temp.html‘)

网页格式仍然是def,函数名,(request),然后返回一个render;

render里面有2个参数,一个是默认的request,另一个是网页模板名称+后缀,用引号包起来。

5、编写url

from django.urls import path
from . import views

urlpatterns = [
    path(‘first_page/‘, views.first_page, name=‘first_page‘),
    path(‘first_temp/‘, views.first_temp, name=‘first_temp‘),
]

和上一个url的写法并没有实质区别,新增一个节点,指向新的views函数即可。

6、访问页面

完整地址为:http://127.0.0.1:8000/test_app/first_temp/

显示如下:

原文地址:https://www.cnblogs.com/lzhshn/p/11371818.html

时间: 2024-08-07 02:20:38

106-一个简单的模板的相关文章

写一个简单的模板引擎

写一个简单的模板引擎 ES6 开始支持模板字符串(Template literals),支持如下的写法: `string text ${expression} string text`; 其实在很多模板引擎中,常常会有这样需求,比如常用的 doT,使用类似的语法 <div>{{=1+2}}</div> // 或者支持循环或者判断 {{for(var i in it){}}} <span>{{=i}}</span> {{}}} 简单插值的实现 我们先来看看一个

1、编写一个简单Makefile模板

一.Makefile简介 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令.linux内核的编译同样也遵循这些规则,具体说明可见kernel/Documentation/kbuild/makefiles.txt 二.简单编写一个Makefile模板 当编译少量的源文件

LayaBox开发实战之实现一个简单的模板类

1.首先UI设计:记得导出 2.然后查看layaUI.max.all.js中是否生成对应UI的JS代码: var FeedBackUI=(function(_super){ function FeedBackUI(){ this.btn_close=null; this.FeedBackText=null; this.button_submit=null; this.button_cancel=null; FeedBackUI.__super.call(this); } CLASS$(FeedB

【前端】一个简单的模板替换函数

... 1 function templateReplace(template, data) { 2 for (var i in data) { 3 oldRe = new RegExp('\\{\\$' + i + '\\}', 'g'); 4 newStr = data[i].toString(); 5 template = template.replace(oldRe, newStr); 6 } 7 return template; 8 } 9 10 // =======test=====

一个简单的模板了解css+div网页布局

直接附上最终效果图: index.html内容: <html> <!--20170730 soulsjie--> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>div+css页面布局综合练习</title> <link rel="stylesheet&quo

编写一个简单的js模板替换工具 rtt----replace templete tool

最近一段时间在修改自己的个人在线简历.  这个在线简历用到了css3来制作3D的旋转效果, 因此会有兼容性问题, 针对于不支持css3的3D透视的浏览器, 比如 IE,  360等等, 我使用的是另一套css文件兼容.  针对于移动端浏览器, 尽管基本都是webkit内核, 但经测试发现3D效果并不流畅, 因此移动端是识别userAgent切换到另一套非3D页面.  因为没用任何数据库, 那么问题就来了, 移动端和pc端两套页面是共用的一套数据, 我想到的方法有两个: 一是页面加载之后用ajax

用EF DataBase First做一个简单的MVC3报名页面

使用EF DataBase First做一个简单的MVC3报名网站 ORM(Object Relational Mapping)是面向对象语言中的一种数据访问技术,在ASP.NET中,可以通过ADO.NET Entity Framework技术来简化数据访问.在EF里,有Code First,Model First和DataBase First三种方法来实现. 百度百科关于ORM的介绍: http://baike.baidu.com/view/197951.htm?fr=aladdin 1.就像

AngularJS 创建一个简单可交互的控件(一)

这几天开始学习Angular这个MVC框架, 边看官网文档和youtube视频边做实例, 现在整理下自己的学习所得与大家分享, 也希望有Angular的大牛们来指教和探讨. 我们设想一个最基本的Web应用场景: 从服务器获取数据,通过这些数据来动态渲染我们的页面. 假设我们目前需要获取一组团队所有成员的信息并且显示, 团队成员的信息有成员名字, 年龄. (示例的控件在页面上的截图) 首先我们需要为我们所需要渲染的页面写一个简单的模板: 创建这个控件的时候我使用的是flatui所设计的扩展boot

如何设计Java框架----一个简单的例子【翻译】

原文:http://www.programcreek.com/2011/09/how-to-design-a-java-framework/ 原文和翻译都只是参考,如有不对,欢迎指正. 你可能会好奇框架是如何工作的,我会创建一个简单的框架来演示一下. 框架的目标首先,为什么我们需要框架而不是库呢?框架的目标是定义一个让开发者实现基于个性化需求的某些功能的过程,换句话说,框架定义了骨架而开发者进行填补. 简单的框架在下面的例子中,前三个类是框架的一部分,第四个类是该框架的客户端代码. Main.j

一个简单的Java模板工具类(二)—简单表达式解析实现

以前写过一个, 用正则比较不高效, 所以用表达式解析方式又实现了一个, 练手. 以前的: http://my.oschina.net/haogrgr/blog/222349 现在的: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; /**  * 非常非常简单的模板实现  *   * @author desheng.tu  * @date 2015年