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天前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
26天前
|
监控 前端开发 JavaScript
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
30 6
|
28天前
|
存储 消息中间件 缓存
构建互联网高性能WEB系统经验总结
如何构建一个优秀的高性能、高可靠的应用系统对每一个开发者至关重要
27 2
|
1月前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
1月前
|
消息中间件 前端开发 JavaScript
探索微前端架构:构建现代Web应用的新策略
本文探讨了微前端架构的概念、优势及实施策略,旨在解决传统单体应用难以快速迭代和团队协作的问题。微前端允许不同团队独立开发、部署应用的各部分,提升灵活性与可维护性。文中还讨论了技术栈灵活性、独立部署、团队自治等优势,并提出了定义清晰接口、使用Web组件、状态管理和样式隔离等实施策略。
|
1月前
|
JSON API 数据格式
使用Python和Flask构建简单的Web API
使用Python和Flask构建简单的Web API
|
1月前
|
缓存 安全 前端开发
构建高效Web应用的五大关键技术
【10月更文挑战第42天】在数字化浪潮中,Web应用已成为企业与用户互动的重要桥梁。本文将深入探讨提升Web应用性能和用户体验的五项核心技术,包括前端优化、后端架构设计、数据库管理、安全性增强以及API开发的最佳实践。通过这些技术的应用,开发者可以构建出更快、更稳定且更安全的Web应用,满足现代网络环境的需求。
|
4月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
177 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
232 4
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
182 45