• 【Django】开发日报_1.1_Day:模板语法


    模板语法:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。

    目录

    1、新建模板

     2、字典传参--基本数据类型&语法

    (1)参数:字符串

    (2)参数:列表

    (3)用索引显示列表元素

    (4)语法:循环

    (5)参数:字典

    (6)参数:字典列表 

    (7)语法:条件语句

    3、Django框架常用文件的基本流程

    4、小案例:伪联通新闻中心(爬chong)

    5、最后不要忘记将改动的代码同步码云


    1、新建模板

    新建html文件:

    tpl.html:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <h1>学习模板语法h1>
    9. body>
    10. html>

    编写views视图函数和URL路径:

    views.py:

    1. from django.shortcuts import render,HttpResponse
    2. # Create your views here.
    3. def index(request):
    4. return HttpResponse("Hello Django!")
    5. def user_list(requets):
    6. return render(requets,'user_list.html')
    7. def user_add(requets):
    8. return render(requets,'user_add.html')
    9. def tpl(requets):
    10. return render(requets,'tpl.html')

    urls.py:

    1. from django.urls import path
    2. from app import views
    3. urlpatterns = [
    4. path('index/', views.index),
    5. path('user/list/',views.user_list),
    6. path('user/add/',views.user_add),
    7. path('tpl/',views.tpl)
    8. ]

    打开http://127.0.0.1:8000/tpl/网页:

     2、字典传参--基本数据类型&语法

    (1)参数:字符串

    views.py

    1. def tpl(requets):
    2. name="代码骑士"
    3. return render(requets,'tpl.html',{"n1":name})

    tpl.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <h1>学习模板语法h1>
    9. <div>{{ n1 }}div>
    10. body>
    11. html>

    访问页面:

     (2)参数:列表

    views.py

    1. def tpl(requets):
    2. name="代码骑士"
    3. name_list=["小明","小红","李华","康康"]
    4. return render(requets,'tpl.html',{"n1":name,"n2":name_list})

    tpl.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <h1>学习模板语法h1>
    9. <div>{{ n1 }}div>
    10. <div>{{ n2 }}div>
    11. body>
    12. html>

    访问页面

    (3)用索引显示列表元素

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <h1>学习模板语法h1>
    9. <div>{{ n1 }}div>
    10. <li>{{ n2.0 }}li>
    11. <li>{{ n2.1 }}li>
    12. <li>{{ n2.2 }}li>
    13. body>
    14. html>

     访问页面:

    (4)语法:循环

     tpl.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <h1>学习模板语法h1>
    9. <div>{{ n1 }}div>
    10. <div>
    11. {% for item in n2 %}
    12. <li>{{ item }}li>
    13. {% endfor %}
    14. div>
    15. body>
    16. html>

    访问网页:

    (5)参数:字典

    views.py

    1. def tpl(requets):
    2. name="代码骑士"
    3. name_list=["小明","小红","李华","康康"]
    4. role_dicts={"name":"小明","salary":100000,"position":"CEO"}
    5. return render(requets,'tpl.html',{"n1":name,"n2":name_list,"n3":role_dicts})

    对于处理字典值的不同写法

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <h1>学习模板语法h1>
    9. <hr/>
    10. <div>{{ n1 }}div>
    11. <hr/>
    12. <div>
    13. {% for item in n2 %}
    14. <li>{{ item }}li>
    15. {% endfor %}
    16. div>
    17. <hr/>
    18. <div>
    19. {{ n3.name }}
    20. {{ n3.salary }}
    21. {{ n3.position }}
    22. <ul>
    23. {% for item in n3.keys %}
    24. <li>{{ item }}li>
    25. {% endfor %}
    26. <hr/>
    27. {% for item in n3.values %}
    28. <li>{{ item }}li>
    29. {% endfor %}
    30. <hr/>
    31. {% for item in n3.items %}
    32. <li>{{ item }}li>
    33. {% endfor %}
    34. <hr/>
    35. {% for k,v in n3.items %}
    36. <li>{{ k }}={{ v }}li>
    37. {% endfor %}
    38. <hr/>
    39. ul>
    40. div>
    41. body>
    42. html>

    访问页面:

    (6)参数:字典列表 

    views.py

    1. def tpl(requets):
    2. name="代码骑士"
    3. name_list=["小明","小红","李华","康康"]
    4. role_dicts={"name":"小明","salary":100000,"position":"CEO"}
    5. data_list=[
    6. {"name": "小明", "salary": 100000, "position": "CEO"},
    7. {"name": "小红", "salary": 100000, "position": "HR"},
    8. {"name": "康康", "salary": 100000, "position": "CTO"}
    9. ]
    10. return render(requets,'tpl.html',{"n1":name,"n2":name_list,"n3":role_dicts,"n4":data_list})

    tpl.py

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <h1>学习模板语法h1>
    9. <hr/>
    10. <div>{{ n1 }}div>
    11. <hr/>
    12. <div>
    13. {% for item in n2 %}
    14. <li>{{ item }}li>
    15. {% endfor %}
    16. div>
    17. <hr/>
    18. <div>
    19. {{ n3.name }}
    20. {{ n3.salary }}
    21. {{ n3.position }}
    22. <ul>
    23. {% for item in n3.keys %}
    24. <li>{{ item }}li>
    25. {% endfor %}
    26. <hr/>
    27. {% for item in n3.values %}
    28. <li>{{ item }}li>
    29. {% endfor %}
    30. <hr/>
    31. {% for item in n3.items %}
    32. <li>{{ item }}li>
    33. {% endfor %}
    34. <hr/>
    35. {% for k,v in n3.items %}
    36. <li>{{ k }}={{ v }}li>
    37. {% endfor %}
    38. <hr/>
    39. ul>
    40. div>
    41. <hr/>
    42. <div>
    43. {{ n4.0 }}
    44. <br/>
    45. {{ n4.0.name }}
    46. <br/>
    47. {{ n4.0.salary }}
    48. div>
    49. <hr/>
    50. <div>
    51. 姓名|薪资
    52. {% for item in n4 %}
    53. <div>{{ item.name }}|{{ item.salary }}div>
    54. {% endfor %}
    55. div>
    56. body>
    57. html>

    访问页面:

    (7)语法:条件语句

     tpl.html

    1. <div>
    2. {% if n1 == "代码骑士" %}
    3. <h2>Hello!h2>
    4. {% elif n1 == "代码超人" %}
    5. <h2>Hi!h2>
    6. {% else %}
    7. <h3>你找错人了。h3>
    8. {% endif %}
    9. div>

    访问页面:

    3、Django框架常用文件的基本流程

    4、小案例:伪联通新闻中心(爬chong)

    使用爬虫获取新闻网页数据:http://www.chinaunicom.com.cn/news/list202209.html

    获取请求网址:http://www.chinaunicom.com.cn/api/article/NewsByIndex/2/2022/09/news

     编写views.py里面的视图函数

            *注意爬虫消息头需要使用代理,否则爬取不到json文件

    1. def news(requet):
    2. #定义一个列表或字典存储数据
    3. #向网址:http://www.chinaunicom.com.cn/api/article/NewsByIndex/2/2022/09/news发送请求
    4. #使用第三方模块:requests
    5. import requests
    6. url = "http://www.chinaunicom.com.cn/api/article/NewsByIndex/2/2022/09/news"
    7. headers = {'User-Agent': 'Mozilla/4.0'}
    8. res = requests.get(url,headers=headers)
    9. data_list=res.json()
    10. print(data_list)
    11. return render(requet,'news.html',{"news_list":data_list})

     编写urls.py文件

    1. path('news/',views.news)

    编写模板news.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>联通新闻中心title>
    6. head>
    7. <body>
    8. <h1>联通新闻中心h1>
    9. <div>
    10. <ul>
    11. {% for item in news_list %}
    12. <li>新闻:{{ item.news_title }} 发布时间:{{ item.post_time }}li>
    13. {% endfor %}
    14. ul>
    15. div>
    16. body>
    17. html>

     一个简单的爬虫页面就做好了:

    5、最后不要忘记将改动的代码同步码云

  • 相关阅读:
    pytorch 训练过程-visdom可视化
    Vue.js+SpringBoot开发木马文件检测系统
    java计算机毕业设计医院人事档案管理系源代码+系统+数据库+lw文档
    【LeetCode热题100】【图论】岛屿数量
    Redis+Springboot实现缓存功能、缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、缓存工具封装
    如何根据自己的SCI论文,匹配适合的期刊? - 易智编译EaseEditing
    回溯算法:排列树(全排列)
    常见的JVM 面试题
    0基础学习VR全景平台篇第118篇:利用动作录制器功能避免重复操作 - PS教程
    Redis实现分布式锁
  • 原文地址:https://blog.csdn.net/qq_51701007/article/details/126789665