1 Python 1.1 爬虫 |
1.1.1 多线程 |
1.1.2 B站 |
1.1.3 zmq71多线程爬取 |
1.1.4 jable.tv多线程爬取 |
1.1.4.1 jable.tv细节 |
1.1.5 python执行js代码 |
1.1.6 windows代理配置 |
1.2 Linux编译升级3.9版本 |
1.3 数据分析 |
1.3.1 预测考研成绩 |
2 Python django |
2.1 目录层面说明 |
2.1.1 urls.py |
2.1.2 settings.py |
2.1.3 M 模型数据库 |
2.1.4 T templates/...html |
2.1.5 V(逻辑处理) views.py |
2.2 django模板 |
2.2.1 模板标签 |
2.2.1.1 过滤器 |
2.2.1.2 标签 |
2.2.1.2.1 if/else |
2.2.1.2.2 for |
2.2.1.2.3 ifequal/ifnotequal |
2.2.1.2.4 csrf_token |
2.2.1.3 模板继承 |
2.2.2 自定义标签和过滤器 |
2.3 django模型ORM |
2.3.1 App应用 |
2.3.1.1 models.py |
2.3.2 SQL |
2.3.2.1 新增 |
2.3.2.2 删除 |
2.3.2.3 更新 |
2.3.2.4 查询 |
2.3.3 单表示例 |
2.3.4 多表示例 |
2.3.5 聚合查询 |
2.3.6 分组查询 |
2.4 django表单 |
2.4.1 GET |
2.4.2 POST |
2.4.3 Request |
2.5 django视图 |
2.6 django路由 |
2.7 django Admin管理 |
2.8 django组件 |
2.8.1 Form页面组件 |
2.8.2 Auth用户认证 |
2.8.3 Cookie/Session |
2.8.4 中间件 |
2.8.5 视图FBV/CBV |
2.9 django+nginx+uwsgi |
2.10 Python小知识 |
2.10.1 def __int__(self): |
2.10.2 def __str__(self): |
2.10.3 @staticmethod |
2.10.4 @wraps |
2.10.5 pycharm |
for 标签 {% for %} 允许我们在一个序列上迭代。 与 Python 的 for 语句的情形类似,循环语法是 for X in Y ,Y 是要迭代的序列而 X 是在每一个特定的循环中使用的变量名称。 每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。 例如,给定一个运动员列表 athlete_list 变量,我们可以使用下面的代码来显示这个列表: <ul> {% for athlete in athlete_list %} <li>{{ athlete.name }}</li> {% endfor %} </ul>
from django.shortcuts import render
def runoob(request): views_list = ["菜鸟教程","菜鸟教程1","菜鸟教程2","菜鸟教程3",] return render(request, "runoob.html", {"views_list": views_list})
{% for i in views_list %} {{ i }} {% endfor %}
给标签增加一个 reversed 使得该列表被反向迭代: {% for athlete in athlete_list reversed %} ... {% endfor %}
{% for i in views_list reversed%} {{ i }} {% endfor %}
遍历字典: 可以直接用字典 .items 方法,用变量的解包分别获取键和值。
from django.shortcuts import render
def runoob(request): views_dict = {"name":"菜鸟教程","age":18} return render(request, "runoob.html", {"views_dict": views_dict})
{% for i,j in views_dict.items %} {{ i }} {{ j }}
{% endfor %}
在 {% for %} 标签里可以通过 {{forloop}} 变量获取循环序号。 • forloop.counter: 顺序获取循环序号,从 1 开始计算 • forloop.counter0: 顺序获取循环序号,从 0 开始计算 • forloop.revcounter: 倒序获取循环序号,结尾序号为 1 • forloop.revcounter0: 倒序获取循环序号,结尾序号为 0 • forloop.first(一般配合if标签使用): 第一条数据返回 True,其他数据返回 False • forloop.last(一般配合if标签使用): 最后一条数据返回 True,其他数据返回 False
from django.shortcuts import render
def runoob(request): views_list = ["a", "b", "c", "d", "e"] return render(request, "runoob.html", {"listvar": views_list})
{% for i in listvar %} {{ forloop.counter }} {{ forloop.counter0 }} {{ forloop.revcounter }} {{ forloop.revcounter0 }} {{ forloop.first }} {{ forloop.last }} {% endfor %} {% empty %} 可选的 {% empty %} 从句:在循环为空的时候执行(即 in 后面的参数布尔值为 False )
from django.shortcuts import render
def runoob(request): views_list = [] return render(request, "runoob.html", {"listvar": views_list})
{% for i in listvar %} {{ forloop.counter0 }} {% empty %} 空空如也~ {% endfor %} 可以嵌套使用 {% for %} 标签: {% for athlete in athlete_list %} <h1>{{ athlete.name }}</h1> <ul> {% for sport in athlete.sports_played %} <li>{{ sport }}</li> {% endfor %} </ul> {% endfor %}
|