在前面的访问数据库中,我们是这样来插入数据的:

[root@localhost web]$ cat web/urls.py

urlpatterns = patterns('',
....
url(r'^db/$', 'blog.views.db'), # 先定义访问的URL,然后再根据URL定义视图文件
)
[root@localhost web]$ cat blog/views.py
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader, Context
from blog.models import Host def db(request):
h = Host()
h.hostname = 'node04' # 这里直接把数据写死了
h.ip = '192.168.1.4'
h.save()
return HttpResponse("OK")

我们可以通过 POST 或 GET 方法来传递数据:

GET 是直接以网址形式打开,网址中包含了所有的参数,浏览器会把 http header 和 data 一并发送出去,服务器响应200(返回数据)
POST 是浏览器先发送 http header,服务器响应100 continue,浏览器再发送 data,服务器响应200 ok(返回数据),具体用什么方法是由服务器来决定的

[root@localhost web]$ cat blog/views.py
....
from blog.models import Host # 加载数据模型 def db(request):
if request.POST:
hostname = request.POST.get('hostname') # 从POST数据中获取主机名
ip = request.POST.get('ip') # 从POST数据中获取IP地址
host = Host() # 实例化数据模型
host.hostname = hostname # 插入主机名数据
host.ip = ip # 插入IP地址数据
host.save() # 保存数据到数据库
return HttpResponse('OK') # 最后返回一个结果给页面
elif request.GET:
hostname = request.GET.get('hostname')
ip = request.GET.get('ip')
host = Host()
host.hostname = hostname
host.ip = ip
host.save()
return HttpResponse('OK')
else:
return HttpResponse('No Data!')
[root@localhost web]$ cat web/settings.py
...... MIDDLEWARE_CLASSES = (
......
#'django.middleware.csrf.CsrfViewMiddleware', # 注释掉该项,如果不注释掉,那么发送POST请求需要字符串验证
)

通过 POST 方法传递数据(第一种方式):

[root@localhost web]$ curl -d hostname='node05' -d ip='192.168.1.5' http://192.168.216.128:8000/db/
OK

通过 POST 方法传递数据(第二种方式):

#!/usr/bin/env python
#-*- coding:utf-8 -*- import urllib, urllib2 data = {
'hostname': 'node05',
'ip': '192.168.1.5',
} url = 'http://192.168.216.128:8000/db/'
response = urllib2.urlopen(url, urllib.urlencode(data))
print response.read()

通过 GET 方法传递数据(第一种方式):

通过 GET 方法传递数据(第二种方式):

#!/usr/bin/env python
#-*- coding:utf-8 -*- import urllib, urllib2 data = {
'hostname': 'node06',
'ip': '192.168.1.6',
} url = 'http://192.168.216.128:8000/db/' + urllib.urlencode(data)
response = urllib2.urlopen(url)
print response.read()

Django 数据传递的更多相关文章

  1. Django 前后台的数据传递示列

    Django 前后台的数据传递的方法 Django 从后台往前台传递数据时有多种方法可以实现. 最简单的后台是这样的: ? 1 2 3 4 from django.shortcuts import r ...

  2. Django与JS交互的示例代码-django js 获取 python 字典-Django 前后台的数据传递

    Django与JS交互的示例代码 Django 前后台的数据传递 https://www.cnblogs.com/xibuhaohao/p/10192052.html 应用一:有时候我们想把一个 li ...

  3. EXTJS中grid的数据特殊显示,不同窗口的数据传递

    //EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...

  4. Activity系列讲解---数据传递

    在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中.因此需要一种特别的机制帮助我们在Activity之间传递消息.Android中通过Intent对象来表示一 ...

  5. vue2.0 组件之间的数据传递

    组件间的数据传递// 父组件<template><div class="order"><dialog-addpro v-on:closedialog= ...

  6. ASP.NET MVC3中Controller与View之间的数据传递总结

    一.  Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...

  7. ASP.NET MVC3中Controller与View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.  Controller向Vie ...

  8. 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...

  9. MVC数据传递

    一.数据传递 1.ViewData[]: 用法:action中:ViewData["key"]="aaa";,V层接收ViewData["key&qu ...

随机推荐

  1. Ubuntu中基于QT的系统网线连接状态的实时监视

    1.必要准备 需包: #include <QNetworkInterface> 2.实现获取当前的网线连接状态 以下是自己在网络上搜到的一个解决方法,且没有加入iface.flags(). ...

  2. android 在HTML中显示bitmap

    逻辑:将bitmap转化为Base64,通过调用HTML中的JS,显示到HTML中 (1)android代码 public String bitmaptoString(Bitmap bitmap) { ...

  3. 关于Unity中的声音管理模块(专题七)

    声音的要素 1: 音频文件AudioClip2: 音源AudioSource;3: 耳朵AudioListener;//全局只能有一个4: 2D/3D音频;//2D只是简单地播放声音,3D可以根据距离 ...

  4. SAP Actual Costing with Material Ledger 激活实际成本后台配置

    Actual Costing with Material Ledger 1      Purpose This configuration guide provides the information ...

  5. 用OpenGL实现跳跃的立体小球

    一.目的 掌握OpenGL中显示列表对象的使用方法. 二.示例代码 Github地址 #include "stdafx.h" #include <GL/glut.h> ...

  6. JUnit介绍,JUnit是什么?

    JUnit是什么? JJUnit是用于编写和运行可重复的自动化测试的开源测试框架, 这样可以保证我们的代码按预期工作.JUnit可广泛用于工业和作为支架(从命令行)或IDE(如Eclipse)内单独的 ...

  7. js 跨域 Jquery取得iframe中元素的几种方法

    http://www.jb51.net/article/34942.htm 收集利用Jquery取得iframe中元素的几种方法 : 父页面访问子页面 $(document.getElementByI ...

  8. Java对象的序列化与反序列化-Json篇

    说到Java对象的序列化与反序列化,我们首先想到的应该是Java的Serializable接口,这玩意在两个系统之间的DTO对象里面可能会用到,用于系统之间的数据传输.或者在RPC(远程方法调用)时可 ...

  9. OSG 坑爹的Android example

    本人3D编程方面超级菜鸟,因为项目需要,接触了一些Open Scene Graph(OSG)引擎的相关编程工作.首先我得承认,OSG这个引擎超级牛,无论是渲染效果和效率,都没的说,很棒.但是,OSG提 ...

  10. Android从文件读取图像显示的效率问题

    因为从文件读取图像到Bitmap是一件比较费时的事情,所以研究了一下几种可行的办法,并做了对比. 首先解释一下为什么耗时,这是因为,在从jpg或者png文件中读取Bitmap时,一来需要对外存进行操作 ...