文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python django web项目的

2023-01-31 06:08

关注

视图的实现:

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

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

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

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

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


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


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

[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中加入一条记录:

[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

[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记录:

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,编写模板

[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 n in student_list %}
<div>
    <h3>`n`</h3>
</div>
{% endfor %}

`student_list`

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

[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记录:

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯