@@ -214,6 +214,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
214214 - ` models.py ` :存放应用的数据模型,即实体类及其之间的关系(MVC/MVT中的M)。
215215 - ` tests.py ` :包含测试应用各项功能的测试类和测试函数。
216216 - ` views.py ` :处理请求并返回响应的函数(MVC中的C,MVT中的V)。
217+
2172182 . 进入应用目录修改视图文件views.py。
218219
219220 ``` Shell
@@ -294,12 +295,15 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
294295
295296 ``` Python
296297
297- from django.http import HttpResponse
298-
299298 from io import StringIO
300- from random import randrange
301299
302- fruits = [' 苹果' , ' 草莓' , ' 榴莲' , ' 香蕉' , ' 葡萄' , ' 山竹' , ' 蓝莓' , ' 西瓜' ]
300+ from django.http import HttpResponse
301+
302+ depts_list = [
303+ {' no' : 10 , ' name' : ' 财务部' , ' location' : ' 北京' },
304+ {' no' : 20 , ' name' : ' 研发部' , ' location' : ' 成都' },
305+ {' no' : 30 , ' name' : ' 销售部' , ' location' : ' 上海' },
306+ ]
303307
304308
305309 def index (request ):
@@ -310,19 +314,35 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
310314 output.write(' \t <title>首页</title>' )
311315 output.write(' </head>\n ' )
312316 output.write(' <body>\n ' )
313- output.write(' \t <h1>Hello, world! </h1>\n ' )
317+ output.write(' \t <h1>部门信息 </h1>\n ' )
314318 output.write(' \t <hr>\n ' )
315- output.write(' \t <ol>\n ' )
316- for _ in range (3 ):
317- rindex = randrange(0 , len (fruits))
318- output.write(' \t\t <li>' + fruits[rindex] + ' </li>\n ' )
319- output.write(' \t </ol>\n ' )
319+ output.write(' \t <table>\n ' )
320+ output.write(' \t\t <tr>\n ' )
321+ output.write(' \t\t\t <th>部门编号</th>\n ' )
322+ output.write(' \t\t\t <th>部门名称</th>\n ' )
323+ output.write(' \t\t\t <th>所在地</th>\n ' )
324+ output.write(' \t\t </tr>\n ' )
325+ for dept in depts_list:
326+ output.write(' \t\t <tr>\n ' )
327+ output.write(f ' \t\t\t <td> { dept[" no" ]} </td> \n ' )
328+ output.write(f ' \t\t\t <td> { dept[" name" ]} </td> \n ' )
329+ output.write(f ' \t\t\t <td> { dept[" location" ]} </td> \n ' )
330+ output.write(' \t\t </tr>\n ' )
331+ output.write(' \t </table>\n ' )
320332 output.write(' </body>\n ' )
321333 output.write(' </html>\n ' )
322334 return HttpResponse(output.getvalue())
323-
324335 ```
325336
337+ 7 . 再次使用下面的命令来启动服务器并查看程序的运行结果。
338+
339+ ``` Shell
340+
341+ (venv)$ cd ..
342+ (venv)$ python manage.py runserver
343+ ```
344+ ! [](./res/runserver.png)
345+
326346# ### 使用视图模板
327347
328348上面通过拼接HTML代码的方式生成动态视图的做法在实际开发中是无能接受的,这一点我相信是不言而喻的。为了解决这个问题,我们可以提前准备一个模板页,所谓模板页就是一个带占位符的HTML页面,当我们将程序中获得的数据替换掉页面中的占位符时,一个动态页面就产生了。
@@ -354,14 +374,22 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
354374 < title> 首页< /title>
355375 < /head>
356376 < body>
357- <h1 >{{ greeting }} </h1 >
377+ < h1> 部门信息 < /h1>
358378 < hr>
359- <h3 >今天推荐{{ num }}种水果是:</h3 >
360- <ul >
361- {% for fruit in fruits %}
362- <li >{{ fruit }}</li >
363- {% endfor %}
364- </ul >
379+ < table>
380+ < tr>
381+ < th> 部门编号< /th>
382+ < th> 部门名称< /th>
383+ < th> 所在地< /th>
384+ < /tr>
385+ {% for dept in depts_list %}
386+ < tr>
387+ < td> {{ dept.no }}< /td>
388+ < td> {{ dept.name }}< /td>
389+ < td> {{ dept.location }}< /td>
390+ < tr>
391+ {% endfor %}
392+ < /table>
365393 < /body>
366394 < /html>
367395 ` ` `
@@ -379,19 +407,16 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
379407 ` ` ` Python
380408
381409 from django.shortcuts import render
382- from random import randrange
383410
411+ depts_list = [
412+ {' no' : 10, ' name' : ' 财务部' , ' location' : ' 北京' },
413+ {' no' : 20, ' name' : ' 研发部' , ' location' : ' 成都' },
414+ {' no' : 30, ' name' : ' 销售部' , ' location' : ' 上海' },
415+ ]
384416
385- def index (request ):
386- fruits = [' 苹果' , ' 香蕉' , ' 草莓' , ' 葡萄' , ' 山竹' , ' 杨梅' , ' 西瓜' , ' 榴莲' ]
387- start, end = 0 , randrange(len (fruits))
388- ctx = {
389- ' greeting' : ' Hello, Django!' ,
390- ' num' : end + 1 ,
391- ' fruits' : fruits[start:end + 1 ]
392- }
393- return render(request, ' index.html' , ctx)
394417
418+ def index(request):
419+ return render(request, ' index.html' , {' depts_list' : depts_list})
395420 ` ` `
396421
397422 到此为止,我们还没有办法让views.py中的render函数找到模板文件index.html,为此我们需要修改settings.py文件,配置模板文件所在的路径。
@@ -436,7 +461,6 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
436461 (venv)$ python manage.py runserver
437462 ` ` `
438463
439- ![ ] ( ./res/runserver.png )
440464
441465# ## 总结
442466
0 commit comments