django-学生列表页的制作

本文详细介绍了如何在Python后端使用Django框架创建学生列表页面,包括路由设置、视图函数编写、数据库查询操作及结果展示。通过pymysql与Django ORM进行数据交互,利用HTML模板语言展示数据,涵盖了SQL执行、游标操作、数据渲染等关键步骤。

学生列表页的制作

1 完成路由对应关系

path('stu_list/', stu_list)

2 完成视图函数

def stu_list(request):
    """ 目标是帮我们获取全部学生数据 """
    sql = "select * from student;"
    djsql.cursor.execute(sql)
    all_stu = djsql.cursor.fetchall()  # 【{},{}】
    return render(request, "stu_list.html", {"all_stu":all_stu})

3 视图函数需要的模板与数据的处理

模板文件的处理

为了方便结果的清晰直观,我们不使用html标签

<!DOCTYPE html>
<!--作者:pyhui-->
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

{% for stu in all_stu %}
{{ stu.id }} -- {{ stu.name }} -- {{ stu.gender }} <br>
{% endfor %}

</body>
</html>

数据的处理

练习阶段,我们主要使用pymysql

明确两个对象

1,连接对象
2,游标对象

连接对象,可以创建游标对象
连接对象,直接与数据库相关联,他可以向数据库提交一些东西。如果有对数据库的操作,就让连接对象提交。commit方法

游标对象,执行sql句语。 execute(SQL语句)
游标对象,获取查询结果。 fetch系列(fetchone,fetchall,fetchmany)

如果游标对象期望修改数据,需要经上级同意。上级就是连接对象。

对于增加,修改,删除一类的行为,游标对象执行的sql,会被递交到上级那里。

只有上级点头同意,这种修改行为才会被实现。否则,上级不提提交,原数据库内容是不会发生变化的。

模板语言

占位符,取值

例如,后端传递的字典是

render(request, “aa.html”, {“stu_dict”: [1,2,3,4]}

前端的占位符会被后端传来的数据替代

{{stu_dict}}

就会被渲染成

[1,2,3,4]

  • 现在要取索引为2的数据

取值方式

列表.2

  • 如果希望遍历的输出里面的所有内容

{% for i in stu_list %}
i
{% endfor%}

如果后端传来的字典,现在只写传来的字典

{“stu_dict”: {“name”:“zs”, “age”:18}}

前端如果希望拿到名字

应该这样子写

{{stu_dict.name}}

总结

在模板语言中

不论传过来的是列表,元组,字典,还是对象

取值方式统一的使用点来取值

列表.0 意思是,取列表的0号索引值

字典.age 意思是,取字典中"age"键所对应的值h

对象.name 意思是, 取对象中"age"属性对应的值

在模板语言中,不存在用[]取值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值