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,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
700 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
3月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
82 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
1月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
5月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
7月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的商城管理系统源码+运行步骤
基于Python+Vue开发的商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的网上商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
244 7
|
2月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
557 1
|
4月前
|
数据采集 数据可视化 JavaScript
用Python采集CBC新闻:如何借助海外代理IP构建稳定采集方案
本文介绍了如何利用Python技术栈结合海外代理IP采集加拿大CBC新闻数据。内容涵盖使用海外代理IP的必要性、青果代理IP的优势、实战爬取流程、数据清洗与可视化分析方法,以及高效构建大规模新闻采集方案的建议。适用于需要获取国际政治经济动态信息的商业决策、市场预测及学术研究场景。
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
4月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
146 1

热门文章

最新文章

推荐镜像

更多