django搭建web (五) views.py
http请求: HttpRequest
http响应: HttpResponse
所在位置:django.http
isinstance(request,HttpResponse) True->request的类型就是HttpRequest
HttpRequest对象属性:
| Attribute | Description | 
|---|---|
| path | 请求页面的全路径 | 
| method | ```请求中使用的HTTP方法的字符串表示。全大写表示。例如 | 
          if quest.method == 'GET':
do_something()
elif request.method == 'POST': 
do_something_else() ```
|GET            |包含所有HTTP GET参数的类字典对象 |
|POST            |包含所有HTTP POST参数的类字典对象 |
    localhost:8000/hello/?name=12345
参数名为name,在接收的时候可以如下
    def hello(request):
        print(quest.GET.get('name'))
| get() | 如果key对应多个value,get()返回最后一个value | 
|---|
form-表单
response = HttpResponse("Here is the text of the web page",mimetype="text/plain")
return response
#等价
return render(request,'table.html',{'foo':'bar'})
t = loader.get_template('table.html')
c = {'foo':'bar'}
return HttpResponse(t.render(c,request),content_type="text/html")
from django.shortcuts import render_to_response
return render_to_response('table.html',{'foo':'bar'})
redirect 页面跳转
from django.shortcuts import redirect
... ...
return redirect('http://www.baidu.com')
locals()
#locals()将当前作用于的变量全部传递给模板变量
return render_to response('table.html',locals())
demo
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from .models import myQuestion,myAnswer
# Create your views here.
def research(request):
    question_list = myQuestion.objects.all()
    answer_list = myAnswer.objects.all()
    context = {'question_list':question_list,'answer_list':answer_list}
    return render(request,"polls/index.html",context)
在该demo中
首先从models中引入模型myQuestion,myAnswer
from .models import myQuestion,myAnswer
其次定义了一个函数hello,这个地方的hello名称要与urls.py中名称对应,例如hello出现在urls.py如下:
urlpatterns = [
    url(r'^$',views.hello,name = 'hello'),
]
之后调用
question_list = myQuestion.objects.all()
函数,将myQuestion模型的全部变量以列表形式赋值给question_list,下句类似
然后
context = {'question_list':question_list,'answer_list':answer_list}
将列表转成字典,并起上名称,一同赋值给context
最后
return render(request,"polls/index.html",context)
将内容context放进templates/polls/index.html文件中渲染,显示
django搭建web (五) views.py的更多相关文章
- django搭建web (二) urls.py
		
URL模式: 在app下的urls.py中 urlpatterns=[ url(正则表达式,view函数,参数,别名,前缀)] urlpatterns=[ url(r'^hello/$',hello. ...
 - django搭建web (四) models.py
		
demo 该demo模型主要是用于问题,选择单个或多个答案的问卷形式应用 # -*- coding: utf-8 -*- from __future__ import unicode_literals ...
 - django搭建web (三) admin.py -- 待续
		
demo 关于模型myQuestion,myAnswer将在后述博客提及 # -*- coding: utf-8 -*- from __future__ import unicode_literals ...
 - PyCharm社区版+Django搭建web开发环境-2
		
接上一篇:PyCharm社区版+Django搭建web开发环境-1 1. 创建好django项目并建立app应用:web 2. setting.py:配置app应用 INSTALLED_APPS = ...
 - python +Django 搭建web开发环境初步,显示当前时间
		
1.python 的安装 网上很多关于django跟python 开发的资料,这块我正在实习准备用这个两个合起来搞一个基于web 的东西出来现在开始学习,写点东西记录一下心得. 开发环境是window ...
 - Python & PyCharm & Django 搭建web开发环境
		
一.安装软件 1.安装 Python 2.7.PyCharm.pip(Python包管理工具).Django ( pip install Django) 二.部署 1.PyCharm 新建Django ...
 - django搭建web (一)
		
建立工程 django-admin.py startproject project_name 建立app python manage.py startapp app_name 将app添加进工程中 在 ...
 - PyCharm社区版+Django搭建web开发环境-1
		
PyCharm开源社区版不像商业版那样可以直接通过Django来创建项目,必须通过以下几个步骤进行: 1. 创建项目:在cmd命令行下输入:django-admin startproject Demo ...
 - PyCharm社区版+Django搭建web开发环境
		
PyCharm开源社区版不像商业版那样可以直接通过Django来创建项目,必须通过以下几个步骤进行: 1. 创建项目:在cmd命令行下输入:django-admin startproject Demo ...
 
随机推荐
- 【转载】Apache Spark Jobs 性能调优(一)
			
当你开始编写 Apache Spark 代码或者浏览公开的 API 的时候,你会遇到各种各样术语,比如 transformation,action,RDD 等等. 了解到这些是编写 Spark 代码的 ...
 - mongodb在windows下安装启动
			
mongodb安装 mongodb配置 创建几个文件夹具体如下:数据库路径(\data\db\目录).日志路径(\data\log\目录)和日志文件(mongod.log文件)c:\data\log\ ...
 - POJ1741
			
树分治,每次把每个点的deep取出,排序...尺取法... # include <stdio.h> # include <stdlib.h> # include <ios ...
 - 30.Django CSRF 中间件
			
CSRF 1.概述 CSRF(Cross Site Request Forgery)跨站点伪造请求,举例来讲,某个恶意的网站上有一个指向你的网站的链接,如果某个用户已经登录到你的网站上了,那么当这个用 ...
 - 部署用于生产的Exceptionlees(一个强大易用的日志收集服务)
			
Exceptionless是一个非常优秀的事件记录服务,目前我们的自部署的Exceptionless已经稳定运行了近一年的时间,收集了千万条事件信息.但Exceptionless官方自宿主部署的文档不 ...
 - 常见递归问题 java
			
//最长公共子序列 import java.util.*;public class Main { public static void main(String[] args){ int ans = m ...
 - SDP(13): Scala.Future - far from completion,绝不能用来做甩手掌柜
			
在前面几篇关于数据库引擎的讨论里很多的运算函数都返回了scala.Future类型的结果,因为我以为这样就可以很方便的实现了non-blocking效果.无论任何复杂的数据处理操作,只要把它们包在一个 ...
 - 第一迭代目标——future weather
			
第一个迭代目标(主要数据) 引导界面.获取天气数据(api接口).天气分享 人员工作分配: 引导界面:周子静,界面的引导,耗时3天 获取天气数据:包舒婷.俞先浩,api接口,耗时5天 天气分享:郭磊蕾 ...
 - [模拟赛] T1 无线通讯网
			
Description 国防部计划用无线网络连接若干个边防哨所.2种不同的通讯技术用来搭建无线网络: 每个边防哨所都要配备无线电收发器:有一些哨所还可以增配卫星电话. 任意两个配备了一条卫星电话线路的 ...
 - eclipse编码设置