Django基本语法

92 阅读1分钟

1.1 templates模版

def index(request):  
return render(request,"user_list.html")
# 去app目录下根据app注册顺序从templates目录寻找user_list.html

1.2 静态文件

1.2.1 一般静态文件的目录结构:

  • 图片
  • css
  • js

截屏2023-09-07 15.59.03.png

1.2.2 静态文件导入

  • 创建static文件夹
  • 引用静态文件

<!DOCTYPE html>
<html Lang="en">
<head>
    {% load static %}
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.css' %}">
</head>
<body>
<h1>用户列表</h1>

<img src="{% static 'img/1.png' %}" alt="">
<script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.js' %}"></script>
</body>
</html>

1.3 django模板语法

在html中写占位符,由数据对占位符进行替换

# 在views.py中编辑
def tpl(request):
    name = "韩超"
    # 列表
    rules = ["哼哼","guan"]
    # 字典
    user_list = {"name": "你好", "salary": 10000}
    
    data_list = [
        {"name": "你好", "salary": 10000}
        {"name": "你好o", "salary": 100}
        {"name": "你好i", "salary": 1000}
    ]
    
    #  {{ n3.1 }}
    #  {{ n3.1.name }}
    #  {% for item in n3%}
    #   <div>{{ item.name }}  {{ item.salary }}</div>
    
    # 用render传参
    return render(request, 'tpl.html', {"n1":name, "n2":rules, "n3": user_info}) 
<!--在tpl.html中编辑-->
<div>{{ n1 }}</div>
<!--列表-->
<div>{{ n2 }}</div>
<div>{{ n2.0 }}</div>
<div>{{ n2.1 }}</div>  
    {% for item in n2 %}
        <span>{{ item }}</span>   <!--循环输出-->
    {% endfor %}
    
<!--字典取值-->
{{ n3 }}
{{ n3.name }}    <!--你好-->
{{ n3.salary }}   <!--10000-->
<!--字典循环-->
{% for item in n3.values %}
<!--  {% for k,v in n3.items %} 取keys和value  -->
<!--     <span>{{ k }} = {{ v }} </span> -->
    <span>{{ item }}</span>  <!--你好  10000-->
{% endfor %}
{% if n1 == "韩超业" %}
    <h1>哒哒哒斑哒</h1>
{% elif n1 == "dff" %}
{% else %}
    <h1>嘟嘟嘟嘟</n1>
{% endif %}

2.1 实例

  • 制作新闻页面
# views.py中编写
def news(req):
    import requests
    resp = request.get("http://www.chinaunicom.com.cn/api/article/NewsByIndex/2/2023/06/news")
    data_list = res.json()
    print(data_list)
    
    return render(req,'news.html',{"news_list":data_list})
# html中编写
{% for item in news_list %}
    <li>{{ item.new_title }} 时间:{{ item.post_time }}</li>
{% endfor %}
    ```