0x0d、如何设置不同登录方式,显示不同的标签及对应的form表单的字段?下面代码超级多细节,真的值得看
描述的情景如下图:
代码实现思路:两个不同的登录方式是:账号密码登录和使用短信验证码登录。
1.如果是使用短信验证码登录的话,给它多传递一个字段用于区别这个form表单到底是哪个,如,ynamic_login = True
2.设置这个字段用于标记,当前这个登录方式是短信验证码登录,然后将这个字段传递到前端的html页面里面,去判断,如果存在这个字段并且为True
那么前端的html代码就展示短信验证码登录的相关代码即可。
3.下面看一下前端的相关代码:
1 | <div class="fl form-box"> |
4.看一下后端代码:
views.py:
1 | import redis |
forms.py
1 | #!/usr/bin/python3 |
0x0e、使用django的模板层的内建标签及过滤器——stringformat的时候,巨坑点,中间不能留有空格
错误代码:1
2
3
4
5
6
7
8
9
10<li>
<h2>所在地区</h2>
<div class="more">更多</div>
<div class="cont">
<a href="?ct={{ category }}"><span class="{% ifequal city_id '' %}active2{% endifequal %}">全部</span></a>
{% for city in all_citys %}
<a href="?city={{ city.id }}&ct={{ category }}"><span class="{% ifequal city_id city.id|stringformat: 'i' %}active2{% endifequal %}">{{ city.name }}</span></a>
{% endfor %}
</div>
</li>
再放大一点给宁萌康康:
1 | 再定位准确一点就是下面这里: |
这个bug找的我好辛苦,是在下太菜了,跪了跪了 ○| ̄|_
延伸:django中文文档,个人感觉已经很好的了,本小点的知识点链接,请点击我进行了解
0x0f、对查询结果进行排序,直接使用object.order_by(“object字段名”)
降序是:object.order_by(“-object字段名”)
1 | sort = request.GET.get("sort", "") |
0x10、forloop:在html for循环中能够记住当前的index是第几个
详情使用如下:1
2
3
4
5
6
7
8
9
10
11
12<div class="right companyrank layout">
<div class="head">授课机构排名</div>
{% for hot_org in hot_orgs %}
<dl class="des">
<dt class="num fl">{{ forloop.counter }}</dt>
<dd>
<a href="/company/2/"><h1>{{ hot_org.name }}</h1></a>
<p>{{ hot_org.address }}</p>
</dd>
</dl>
{% endfor %}
</div>
0x11、通过url的include机制,设计url匹配模式
[ ] 当时旧版url模式:
1
2
3
4
5
6
7
8urls.py部分:
urlpatterns = [
url(r'^org_list/', OrgView.as_view(), name="org_list"), # OrgView为对应app的views里面的某个view;name是等于给这个url起个标签类似的
]
html使用:
<a class="more" href="{% url 'org_list' %}">查看更多机构 ></a>[x] 使用include机制的模式:
1
2
3
4
5
6urlpatterns = [
url(r'^org/', include(('organizations.urls', "organizations"), namespace="org")), # 如果不熟悉,请查看源码,urlconf_module, app_name = ("organizations.urls", "organizations")
]
html使用:
<a class="more" href="{% url 'org:list' %}">查看更多机构 ></a>
感谢认真读完这篇教程的您
先别走呗,这里有可能有你需要的系列文章: