python-django案例-显示用户名列表 作者:马育民 • 2019-03-03 22:35 • 阅读:10331 # 概述 本文通过案例“显示用户名列表”讲解视图、路由、模板、模型的关系 过程如下: 1. 浏览器访问网址 2. 路由系统通过url匹配,找到相应的视图函数,将请求转交给视图函数 3. 视图函数调用模型查询user表 4. 视图函数将查询结果传递给模板 5. 最后浏览器显示用户列表 # 视图 打开blog/views.py文件,增加如下代码: ``` from django.shortcuts import render #从当前目录中导入models文件 from .models import * def userlist(request): #查询数据库 users=User.objects.all() #将查询结果放入dict中,传给模板,传递数据的类型是dict return render(request,'blog/userlist.html',{'users':users}) ``` # 路由 打开myweb/urls.py文件,将url和上面的视图函数映射 ``` url(r'^userlist', views.userlist), ``` 当访问路径是userlist时,将请求转交给视图函数userlist()处理 **注意:** url中的userlist和视图函数userlist()的同名不是必须得,完全可以随便起名,但为了保证命名规范,这里采用同名处理 # 模板 在文件夹templates/blog文件夹下创建userlist.html文件,核心代码如下: ``` {%for item in users%} {{item.username}} {%endfor%} ``` **说明:** 之前文章中有讲过,django中的模板是 HTML代码+逻辑控制代码(特殊标记) 1. ```{% 中间是python代码 %}``` 2. ```{{ 要输出的内容 }}```,相当于```print()```函数 3. for语句结尾一定要有```endfor``` 4. ```{%for item in users%}```中的users,是 **视图** 向 **模板** 传递 **dict数据** 中的 **key** **注意:** 模板名字userlist.html,与url中的userlist和视图函数userlist()的同名不是必须得,完全可以随便起名,但为了保证命名规范,这里采用同名处理 # 测试 启动服务,打开浏览器访问http://localhost:8000/userlist ,结果如下图: [![](http://www.malaoshi.top/upload/0/0/1EF2tpPoDRbq.png)](http://www.malaoshi.top/upload/0/0/1EF2tpPoDRbq.png) # 总结 本文通过案例方式讲解: 1. 浏览器向django框架发送请求 2. 路由系统匹配上url后,将请求转交给相应的视图函数处理 3. 视图函数调用模型查询数据库,并将查询结果放入dict中,视图加载模板,并将dict传给模板,执行模板中的python代码,最后将html代码发送给浏览器 由此可见视图比较重要,一方面调用模型查询数据库,另一方面加载模板显示数据,最后将html代码发送给浏览器 原文出处:http://malaoshi.top/show_1EF2tpVonUCr.html