Django模板语法及静态文件

模板语法及静态文件

1 多app创建

在主路由当中引入 include

include()函数是Django.urls模块中的一个函数,它的作用是在urls.py文件中引入其他应用的URL模式。

python 复制代码
from django.urls import path, include

创建多个app

复制代码
  python manage.py startapp project_one
  python manage.py startapp project_two

主路由添加两个app的路由

python 复制代码
path('one/', include("project_one.urls"))
path('two/', include("project_two.urls"))
复制代码
##### 对应子路由

```python
# project_one
path('index/one/data/', views.index_one),
# 访问index_one视图路径:one/index/one/data/

# project_two
path('index/two/data/', views.index_two),
# 访问index_two视图路径:two/index/two/data/
```

2 模板语法

2.1 变量

变量的写法使用一个嵌套大括号{{ name }}

python 复制代码
def index_one(request):
    dict_data = {}
    dict_data["name"] = "张三"
    dict_data["love"] = ["篮球", "羽毛球", "足球"]
    return render(request, "two/index_one.html", dict_data)
html 复制代码
</--index_one.html--?>
<h1>大家好,我是{{ name }}我喜欢{{ love.0 }}</h1>
<h1>大家好,我是{{ name }}我喜欢{{ love.1 }}</h1>

2.2 标签

标签允许您执行以下操作:如果条件,for循环,模板继承等。
for循环
python 复制代码
def index_one(request):
    dict_data = {}
    dict_data["love"] = ["篮球", "羽毛球", "足球"]
    return render(request, "two/index_one.html", dict_data)
html 复制代码
</--index_one.html--?>
{% for data in love %}
    <h1>{{ data }}</h1>
{% endfor %}
条件判断
python 复制代码
def index_one(request):
    dict_data = {}
    dict_data["age"] = 18
    return render(request, "two/index_one.html", dict_data)
html 复制代码
</--index_one.html--?>
{% if age >= 18 %}
    <h1>成年了</h1>
{% else %}
    <h1>未成年</h1>
{% endif %}

3 表单提交

html 复制代码
<form method="post">
    {% csrf_token %}
    <input type="text" name="user" placeholder="用户名">
    <input type="password" name="pwd" placeholder="密码">
    <input type="submit" value="提交">
</form>

{% csrf_token %}是 Django 提供的防止伪装提交请求的功能。POST 方法提交的表格,必须有此标签。

python 复制代码
def login(request):
    if request.method == "GET":
        return render(request, "two/login.html")
    else:
        username = request.POST.get("user")
        password = request.POST.get("pwd")
        print(username, password)
        if username == "admin" and password == "123456":
            # return HttpResponse("登录成功")
            # 重定向
            return redirect("/")
        else:
            return HttpResponse("登录失败")
相关推荐
highreport29 分钟前
HighReport报表工具定时调度和邮件定时发送
运维·服务器·数据库
01_ice36 分钟前
数据库基础
数据库
deepdata_cn1 小时前
向量数据库是非结构化数据的AI检索底座
数据库·人工智能
梁辰兴1 小时前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh1 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean1 小时前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
Lumistory1 小时前
城市景观亮化设施维护管养的核心痛点与标准化解决方案
数据库·光照贴图
倒流时光三十年2 小时前
第六阶段 57 · ES|QL 与 SQL API(用 SQL 查 ES)
数据库·sql·elasticsearch
努力进修2 小时前
“数据心脏” 驱动能源自主:国产数据库支撑 Cemsol 实现固井全流程数字化闭环
数据库·人工智能·能源
vHelios2 小时前
SQL不会写?不会找关联表?复杂SQL语句编写逻辑实现思路请查收✉
数据库·sql