URL标签,代参数传递

模板一些简单标签

      <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 %}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容