模板一些简单标签
<style>
.nav{
overflow: hidden;
}
.nav li{
float:left;
margin-left: 40px;
list-style: none;
}
</style>
style标签写在header中,上属代码表示让li列表中文字浮动起来实现方式,
一个是overflow,一个是float,list-style。
案例1:
下列是超链接代参数传递:
<li><a href="{% url 'login' username='king' password=123 %}">登录</a></li>
上面{%}代码中使用的是空格分隔。多个参数也是一样。
此链接中,如果<a>标签中,login链接这里需要传递参数,则可以用如上所述进行传递。
urls.py中核心代码如下。
path('login/<username>/<password>',views.login,name='login'),
views.py中视图函数如下:
def login(request,username,password):
text="你的用户名为{},密码为{}".format(username,password)
return HttpResponse(text)
案例2:
但是,,但是
如下代码:我们用get()获取参数,那么模板中应该怎么传递呢?
def login(request):
username=request.GET.get('kw')
text="你的用户名为{}".format(username)
return HttpResponse(text)
其实可以入代码所示:
<li><a href="{% url 'login' %}?kw=1">登录</a></li>
在href标签后面拼接?kw(这个kw和views.py中kw一致。)=参数值进行传递。
urls.py
这里不带参数了。
path('login/',views.login,name='login'),
如果带参数,views中login函数就要带参数。与案例1相似。
案例3
def index(request):
content={"info": "<a href='http://www.baidu.com'>百度</a>"}
return render(request,'index.html',context=content)
这个视图中,如果想把这个超链接渲染到模板,显示如下图所示:
image.png
那么,在模板中就要添加信任,使用下列代码块关闭自动转义。render函数再没有关闭autoescape 的时候,会把 "<a href='http://www.baidu.com'>百度</a>"直接当成为一个字符串渲染。这个不会被当成模板代码。
例如:image.png
上图为下列代码执行结果
{{ info }}
<hr>
{% autoescape off %}
{{ info }}
{% endautoescape %}