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,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
533 1
|
5月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
9月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
6月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
719 64
|
7月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
598 0
|
8月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
存储 关系型数据库 MySQL
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
30871 0
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
849 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
933 4
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
765 45