python django web项目的构建步骤(二)

简介:

视图的实现:

视图是一个简单的 Python 方法,它接受一个请求对象,负责实现:

任何业务逻辑(直接或间接)

上下文字典,它包含模板数据

使用一个上下文来表示模板

响应对象,它将所表示的结果返回到这个框架中


在 Django 中,当一个 URL 被请求时,所调用的 Python 方法称为一个视图(view),这个视图所加载并呈现的页面称为模板(template)。由于这个原因,Django 小组将 Django 称为一个 MVT(model-view-template)框架。另一方面,TurboGears 把自己的方法称作控制器(controller),将所呈现的模板称为视图(view),因此缩写也是 MVC。其区别在于广义的语义,因为它们所实现的内容是相同的。


1、首先我们可以简单的来实现一下,就在myapp/views.py这个文件中写一个方法:

1
2
3
4
5
6
[root@node3 myapp] # vim views.py
from django.shortcuts  import  render
from django.http  import  HttpResponse
 
def index(request):
     return  HttpResponse( 'Hello Word!' )

2、在mysite2中的urls.py中加入一条记录:

1
2
[root@node3 myapp] # vim ../mysite2/urls.py
url(r '^myapp/$' 'myapp.views.index' ),  # ^myapp/$ 这个可以随意写,这个是在地址栏输入的地址,但是后面的myapp.views.index就必须写views.py中定义的方法。

这个在url地址栏中就可以访问到Hello Word!了

wKioL1V6T6KSvg6uAAA935EPQcI222.jpg

########## 视图-模块-URL的关联使用  ###########

1、在myapp文件夹下编写views.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@node3 myapp] # vim views.py
from django.shortcuts  import  render
from django.http  import  HttpResponse
from django.template  import  Context, loader
from myapp.models  import  *
import  json
 
def studentInfo(request):
     ret = []
     if  request.method ==  'GET' :
         student_list = Student.objects.all()
         for  student_info  in  student_list:
             ret.append(student_info)
     return  HttpResponse(ret)
 
def teacherInfo(request):
     ret = []
     if  request.method ==  'GET' :
         teacher_list = Teacher.objects.all()
         for  teacher_info  in  teacher_list:
             ret.append(teacher_info)
     return  HttpResponse(ret)

2、在mysite2文件夹下的url中添加下面两条url记录:

1
2
url(r '^studentinfo/$' 'myapp.views.studentInfo' ),
url(r '^teacherinfo/$' 'myapp.views.teacherInfo' ),

在页面地址栏中就可以这样查看内容了:

10.17.1.151:8000/studentinfo/

wKioL1V6UAfianq6AACDoF5wCdU640.jpgwKioL1V6UBqCnqnyAABzA7YqayM118.jpg

--------------------------------------------------------------------------------

3、到这我们还没添加模板,这里我们来添加一个模板文件夹,专门用来存放html页面信息的:

在项目目录mysite2下添加模板文件夹templates,编写模板

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@node3 mysite2] # mkdir templates
[root@node3 mysite2] # cd templates
[root@node3 templates] # ll
total 4
-rw-r--r--. 1 root root 91 Jun 11 00:06 show_studentinfo.html
[root@node3 templates] # vim show_studentinfo.html
{%  for  in  student_list %}
<div>
     <h3>`n`< /h3 >
< /div >
{% endfor %}
 
`student_list`

4、然后视图改这以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@node3 myapp] # vim views.py
from django.shortcuts  import  render, render_to_response
from django.http  import  HttpResponse
from django.template  import  Context, loader
from myapp.models  import  *
import  json
 
def studentInfo(request):
     student_list = Student.objects.all()
     # show_studentinfo.html这里写模板文件夹里面对应的html文件名
     return  render_to_response( './show_studentinfo.html' , { 'student_list' :student_list})
 
def teacherInfo(request):
     teacher_list = Teacher.objects.all()
     return  render_to_response( './show_teacherinfo.html' , { 'teacher_list' :teacher_list})

5、然后在mysite2的url文件下添加一行url记录:

1
2
url(r '^show_studentinfo/$' 'myapp.views.studentInfo' ),    # show_studentinfo这个是templates模板文件中的文件名,但不用加.html
url(r '^show_teacherinfo/$' 'myapp.views.teachertInfo' ),   # myapp.views.teachertInfo这个是views中定义的方法

6、然后在地址栏中就可以访问得到了:

wKioL1V6ULTyayy9AAHtjFNr5pQ451.jpgwKiom1V6TxjxcrjHAAEngVsUc9o246.jpg










本文转自 wei0164 51CTO博客,原文链接:http://blog.51cto.com/tanxw/1661159,如需转载请自行联系原作者
目录
相关文章
|
9天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
42 7
|
12天前
|
安全 Linux 开发工具
零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
OpenIM 为开发者提供开源即时通讯 SDK,作为 Twilio、Sendbird 等云服务的替代方案。借助 OpenIM,开发者可以构建安全可靠的即时通讯应用,如 WeChat、Zoom、Slack 等。 本仓库基于开源版 OpenIM SDK 开发,提供了一款基于 Electron 的即时通讯应用。您可以使用此应用程序作为 OpenIM SDK 的参考实现。本项目同时引用了 @openim/electron-client-sdk 和 @openim/wasm-client-sdk,分别为 Electron 版本和 Web 版本的 SDK,可以同时构建 PC Web 程序和桌面应用(Wi
29 2
|
2月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
3月前
|
监控 前端开发 JavaScript
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
60 6
|
3月前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
60 8
|
3月前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
55 7
|
3月前
|
存储 消息中间件 缓存
构建互联网高性能WEB系统经验总结
如何构建一个优秀的高性能、高可靠的应用系统对每一个开发者至关重要
44 2
|
9月前
|
开发框架 前端开发 JavaScript
Python 有哪些Web框架?比如Flask、Django等知识梳理
Python 有哪些Web框架?比如Flask、Django等知识梳理
432 1
|
9月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
391 0
|
3月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
74 1

热门文章

最新文章