当前位置: 首页 > wzjs >正文

福建省效能建设网站电销做网站项目

福建省效能建设网站,电销做网站项目,一套网页ui设计多少钱,网站建设合同中英文模板前言 在之前的文章中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面。目前市面上有非常多的模板系统,其中最知名最好用的…

前言

在之前的文章中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面。目前市面上有非常多的模板系统,其中最知名最好用的就是DTL和jinja2。DTL是Django Template Language 三个单词的缩写,也就是Django自带的模板语言。当然也可以配置Django支持jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况。因此建议大家学习好DTL。


一、DEL与普通的HTML文件的区别

DTL模板是一种带有特殊语法的HTML文件,这个HTML文件可以被Django编译,可以传递参数进去,实现数据动态化。在编译完成后,生成一个普通的HTML文件,然后发送给客户端。

二、渲染模板 

Django提供了一个简便的方式,直接将模板染成字符串和包装成HttpResponse对象一步到位完成。

1.创建templates文件夹,所有的html模板将放入其中

2.找到settings.py文件将模板路径输入其中

'DIRS': [os.path.join(BASE_DIR,'./templates')],

 3.准备HTML模板 index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>你好</title>
</head>
<body><h1>我的第一个标题</h1><p>我的第一个段落</p>
</body>
</html>

4.编写视图函数

#app应用中 views.py文件
from django.shortcuts import render
#模板应用
def index(request):return render(request,template_name="index.html")

5.编写路由

#app应用中 urls.py文件
from django.contrib import admin
from django.urls import path
from app import views
urlpatterns = [path('admin/', admin.site.urls),path('',views.index, name='index')

三、DTL模板语法

1.变量

模板中可以包含变量,Django在渲染模板的时候,可以传递变量对应的值过去进行替换。变量的命名规范和Python非常类似,只能是阿拉伯数字和英文字符以及下划线的组合,不能出现标点符号等特殊字符。变量需要通过视图函数渲染,视图函数在使用render或者render_to_string的时候可以传递一个context的参数,这个参数是一个字典类型。以后在模板中的变量就从这个字典中读取值的。

1.编写视图函数

#app应用中 views.py文件
#动态传值
def info(request):#1.普通变量username = '你好,世界'# return render(request,template_name="info.html", context={'username':username})#2.字典类型book = {'name':"水浒传",'author':'施耐庵'}# return render(request, template_name="info.html", context={'username': username,'book':book})#3.列表类型books = [{'name':'水浒传','author':'施耐庵'},{'name':'三国演义','author':'罗贯中'}]# context = {#     'username':username,#     'book':book,#     'books':books# }# return render(request, template_name="info.html", context=context)#4.对象class Person:def __init__(self):self.realname = '张安'context = {'username': username,'book': book,'books': books,'person':Person()}return render(request, template_name="info.html", context=context)

2.编写路由

#app应该中 urls.py文件
from django.contrib import admin
from django.urls import path
from app import viewsurlpatterns = [path('admin/', admin.site.urls),path('',views.index, name='index'),path('info',views.info,name='info')]

3.编写html文件(info.html)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>你好</title>
</head>
<body><h1>{{ username }}</h1><h1>{{ book.name }}</h1><h1>{{ books.1.name}}</h1><h1>{{ person.realname}}</h1></body>
</html>

四、常用标签

1.if标签

if标签:if标签相当于python中的if语句,有elif和else相对应,但是所有的标签都需要用标签符号({%%})进行包裹。if标签中可以使用=、!=、<、<=、>、>=、in、not in、is、is not等运算符

1.编写视图函数

#app应用views.py中l
def index(request):age = 20return render(request,template_name='index.html',context={'age':age})

2.编写路由

#主路由 urls.py
path('if',views.if_,name='if')

3.编写html

#if.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>你好</title>
</head>
<body>{% if age > 18 %}<p>你可以进去了</p>{% elif age < 18 %}<p>你不可以进去</p>{% endif %}
</body>
</html>

2.for标签

for...in...标签:for...in...类似于python中的for...in...。可以遍历列表、元组、字符串、字典等一切可以遍历的对象。

1.编写视图函数

#app应用 views.py中
def for_(request):#1.列表books = [{'name': '水浒传', 'author': '施耐庵'},{'name': '三国演义', 'author': '罗贯中'}]#2.字典# for x in person.items/keys/valuesperson ={'realname':"张三","age":18,"height":180}context = {'books':books,"person":person}return render(request,template_name='for.html',context=context)

2.编写路由

#主路由的urls.py
path('for',views.for_,name='for')

3.编写html

#for.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>你好</title>
</head>
<body><table><tbody>{% for book in books %}<tr><td>{{ book.name }}</td><td>{{ book.author }}</td></tr>{% endfor %}</tbody>
</table>
<div>{% for key, value in person.items %}<p> {{ key }} : {{ value }} </p>{% endfor %}
</div>
</body>
</html>

如果想要反向遍历,那么在遍历的时候就加上一个reversed。

{% for person in persons reversed %}<p>{{ person.name }}</p>
{% endfor %}

在for循环中,DTL提供了一些变量可供使用。这些变量如下:

  • forloop.counter:当前循环的下标。以1作为起始值。

  • forloop.counter0:当前循环的下标。以0作为起始值。 forloop.revcounter:当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。

  • forloop.revcounter0:类似于for1oop.revcounter。不同的是最后一个元素的下标是从0开始。

  • forloop.first:是否是第一次遍历。

  • forloop.last:是否是最后一次遍历

  • forloop.parentloop:如果有多个循环嵌套,那么这个属性代表的是上一级的for循环。

3.with标签

with标签:在模版中定义变量。有时候一个变量访问的时候比较复杂,那么可以先把这个复杂的变量缓存到一个变量上,以后就可以直接使用这个变量就可以了。

1.编写视图函数

#app应用 views.py中
def with_(request):context ={'books':[{'name': '水浒传', 'author': '施耐庵'},{'name': '三国演义', 'author': '罗贯中'}]}return render(request,template_name='with.html',context=context)

 2.编写路由

#主路由中的urls.pypath('with',views.with_,name='with')

3.编写html

#with.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>你好</title>
</head>
<body>{% with book1 = book.1 %}<p>{{ book1.name }}/{{ book1.author }}</p>
{% endwith %}</body>
</html>

4.url标签

url标签:在模版中,我们经常要写一些url,比如某个a标签中需要定义href属性。当然如果通过硬编码的方式直接将这个url写死在里面也是可以的。但是这样对于以后项目维护可能不是一件好事。因此建议使用这种反转的方式来实现,类似于django中的reverse一样。

1.编写视图函数

#app应用 views.py中
def url_(request):return render(request,template_name='url.html')def book_id(request,book_id):return HttpResponse("您的图书id:{}".format(book_id))

2.编写路由

#主路由中的urls.pypath('url',views.url_,name='url'),path('book/int:<book_id>',views.book_id,name='book_id')

3.编写html

#url.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>你好</title>
</head>
<body><a href="{% url 'for' %}">for.html</a>
<a href="{% url 'book_id' 1 %}">图书列表</a></body>
</html>


文章转载自:

http://Uk6TYOTQ.ryztL.cn
http://X5kTeRUr.ryztL.cn
http://QxsTlY3T.ryztL.cn
http://HFTe4E5D.ryztL.cn
http://tnyi1Bq8.ryztL.cn
http://8u72klwM.ryztL.cn
http://krg7zUzF.ryztL.cn
http://J1jBRZdH.ryztL.cn
http://t0CyiJEn.ryztL.cn
http://H1MvxfzK.ryztL.cn
http://8x4QRtm9.ryztL.cn
http://hHFGHk2N.ryztL.cn
http://uaRWOyRY.ryztL.cn
http://aXphhA6X.ryztL.cn
http://6xqe5let.ryztL.cn
http://ljtpLcvt.ryztL.cn
http://QA5lsvFy.ryztL.cn
http://2nyjtQve.ryztL.cn
http://cFomFN30.ryztL.cn
http://Jip5DpC9.ryztL.cn
http://vuXEXHxp.ryztL.cn
http://Xk2lSP4w.ryztL.cn
http://Q2eAhfDB.ryztL.cn
http://rbYJLDmg.ryztL.cn
http://1nilAtj1.ryztL.cn
http://Jn7Ns7PN.ryztL.cn
http://9jM7p4t8.ryztL.cn
http://aNjGLx34.ryztL.cn
http://iLSdmNIO.ryztL.cn
http://fJeQuKcM.ryztL.cn
http://www.dtcms.com/wzjs/672249.html

相关文章:

  • cms建站模板app重庆网站建设技术外包
  • 商派商城网站建设二次开发做网站和网络推广
  • 手机网站制作哪家公司好深入浅出wordpress pdf
  • 网站建设原则乔拓云网微信小程序制作
  • 成都网站seo网站制作 电子商城
  • 河北网站建设模板互联网推广公司
  • 做网站数据库坏了网站设计行业前景
  • 网站建设专员一定要会网站建设吗做一款app需要网站吗
  • php网站开发项目经验如何写做网站空间多大
  • 济南做外贸网站的公司网架公司名字推荐大全
  • 网站注册商是什么电商网站建设可行性分析
  • 杭州开发区建设局网站做任务的奖金网站
  • jsp 淘宝网站验证码 设计经典企业网站
  • python购物网站开发流程网站建设与开发的软件
  • 有没有可以做游戏的网站卖东西专业网站网上
  • 指示灯具网站建设wordpress footer 修改
  • 湘潭网站建设 要上磐石网络官网最新版cmsv6
  • 模板网站会员阿里云如何购买域名
  • 广州家居网站设计wordpress屏蔽蜘蛛爬虫
  • 视频网站开发的难点寮步镇网站仿做
  • 咸阳网站建设seo烟台做网站哪家好
  • 石家庄pc端网站开发现在个人做网站还能盈利
  • 网站开发实习过程html静态网页作业成品
  • 公司网站制作机构郑州网站推广专员
  • 云南省中国建设工程造价管理协会网站公司邮箱地址
  • ps做网站72分辨率收录查询 站长工具
  • 网站制作公司咨询服务外包企业有哪些
  • 中国建设银行官方网站登录大连网站设计费用
  • 没备案的网站百度收录潮品服饰网站建设规划书
  • 昆明做个人网站小程序名称大全