学生列表页的制作
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"属性对应的值
在模板语言中,不存在用[]取值
本文详细介绍了如何在Python后端使用Django框架创建学生列表页面,包括路由设置、视图函数编写、数据库查询操作及结果展示。通过pymysql与Django ORM进行数据交互,利用HTML模板语言展示数据,涵盖了SQL执行、游标操作、数据渲染等关键步骤。
257

被折叠的 条评论
为什么被折叠?



