51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1349|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-20 15:28:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
视图的实现:
视图是一个简单的 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/$ 这个可以随意写

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


########## 视图-模块-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/



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

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':

5、然后在mysite2的url文件下添加一行url记录:
url(r'^show_studentinfo/$', 'myapp.views.studentInfo'),   # show_studentinfo这个是templates模板文件中的文件名,但不用加.html
url(r'^show_teacherinfo/$', 'myapp.views.teachertInfo'),  # myapp.views.

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





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-18 14:38 , Processed in 0.065343 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表