Django开发之html交互
html中用户输入信息,由Django的view.py处理,大致用到了以下几类格式:
1. 文本框
<input type="text" name="vid" size="10" height="20">
或由bootcss修饰的
<div class="col-sm-2" >
<input type="text" class="form-control" id="username" name="username" placeholder="Username">
</div>
这种相对比较简单
version_num=request.GET.get("vid")
2. 文本框
<td width="30%" align="center" valign="top">粘帖需要发布的其他所有UI</td>
<td><textarea rows="10" cols="40" id="newui" name="newui" ></textarea></td>
这种要这样接收,返回结果是一个列表,相对比较好处理
otherNewUI=request.GET.get("newui").encode('utf8').split("\r\n")
'''return result like this:
[u'GameStub.swf.new', u'giftui.swf', u'zhuui2.swf']
'''
3. 多选按钮,返回值也是一个列表
<td width="30%" align="center" valign="top" >选择ini.xml中需要发布的ui</td>
<td>
<input type="checkbox" name="ui_list" value="GameStub.swf.new" />GameStub.swf.new<br />
<input type="checkbox" name="ui_list" value="giftui.swf" />giftui.swf<br />
<input type="checkbox" name="ui_list" value="zhuui2.swf" />zhuui2.swf<br />
<input type="checkbox" name="ui_list" value="vipui.swf" />vipui.swf<br />
<input type="checkbox" name="ui_list" value="giftboxui.swf" />giftboxui.swf<br />
<input type="checkbox" name="ui_list" value="baseui.swf" />baseui.swf<br />
<input type="checkbox" name="ui_list" value="xinshouui.swf" />xinshouui.swf<br />
<input type="checkbox" name="ui_list" value="buildingui.swf" />buildingui.swf<br />
<input type="checkbox" name="ui_list" value="jiuguanui.swf" />jiuguanui.swf<br />
</td>
newUiList=request.GET.getlist("ui_list")
'''return result like this:
[u'GameStub.swf.new', u'giftui.swf', u'zhuui2.swf']
'''
4. cookie用法
写cookie,并执行跳转
response=render_to_response('verIntegration/uiPrepare.html',{"current_version":current_version,"gameName":gameName})
response.set_cookie("game",game,600)
return response 读cookie,判断cookie是否失效
if "game" in request.COOKIES:
game=request.COOKIES["game"]
gameName=CONFIG[game]['name']
print "cookie still in "
else:
gameName="未知"
print "cookie has gone"
return render_to_response('verIntegration/uiPrepare.html',{"gameName":gameName})
5. pexpect方法执行交互式操作
def pullFile(gameConfig,remoteFileName,localFileName):
#使用目录均为相对路径,绝对路径从字典中读取
cmd="scp -P %s %s@%s:%s/%s %s/%s" % (gameConfig['port'],gameConfig['user'],gameConfig['ip'],gameConfig['remote_dir'],remoteFileName,gameConfig['local_dir'],localFileName)
expect1="password: "
child = pexpect.spawn(cmd)
child.expect(expect1)
child.sendline(gameConfig['password'])
child.read()
return None
6. pexpect远程执行脚本,这个可以参考pexpect的example中的hive.py
def remoteRun(gameConfig,cmd):
srv_ip=gameConfig['ip']
srv_port=gameConfig['port']
srv_username=gameConfig['user']
srv_password=gameConfig['password']
try:
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(srv_ip,srv_port,srv_username,srv_password,timeout=5)
stdin, stdout, stderr = ssh.exec_command(cmd) outlist=[]
for out in stdout:
outlist.append(out.strip('\n'))
except Exception,e:
print "Error"
print e
return None
Django开发之html交互的更多相关文章
- django开发之model篇-Field类型讲解
今天介绍一下django开发中,定义模型时用到的相关字段类型和字段选项. 先说说常用的字段类型:1) AutoField: 自增字段类型,当自定义自增类型的id时,可以使用此类型:2) BigAuto ...
- Django开发之module
1.首先需要安装你要使用的数据的python模块组件 2.需要新建一个app 切换到工程根目录下,然后执行django-admin.py startpapp firstModule 编辑first/s ...
- Django开发之ORM批量操作
版本 1 Python 3.8.2 2 Django 3.0.6 批量入库 场景: 前端页面通过 textarea 文本框提交一列多行数据到Django后台,后台通过ORM做入库操作 表名: Tabl ...
- Django开发之Ajax POST提交403报错
问题现象 Django开发时,前端post提交数据时,由于csrf机制,如果不做处理会报403报错 问题解决 通过在data字段中添加 csrfmiddlewaretoken: '{{ csrf_to ...
- Django开发之Ajax 返回内容报错
预期效果 Django通过Ajax POST提交数据,前台弹窗处理结果 粗略代码 # views.py 代码 ...省略... msg = { 'code': 200, 'message': 'Hel ...
- Django开发之Datetime类型JSON序列化时报错
前提回顾 在进行django开发view视图时,如果数据库字段是 datetime类型,在JSON序列化返回时,会出现异常 异常现象 TypeError: Object of type datetim ...
- django 开发之给admin 模块添加富文本编辑器
第一步下载kindeditor http://kindeditor.net/demo.php 下载下来后放到静态文件static 下面的js下面 接着在admin 模块文章类下引入这富文本编辑器: ...
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...
- Android混合开发之WebView与Javascript交互
前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ...
随机推荐
- 数据库学习--wildfly配置postgreSQL数据源
前言 实验室最近在做一个物品管理系统的小项目,其中涉及到postgreSQL的使用,刚开始部署到wildfly服务器上时遇到了若干问题,终于在导师的讲解下大体上明白了 ,特此记录分享学习一下. 配置数 ...
- django使用类做业务逻辑
在django中一般定义一个带有request参数的函数用来处理url,但是更推荐用类做 从django.views.generic.base 导入的views有get,post等各种函数,用来处理对 ...
- linux文件传输
Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp常用来在两台linux之间传输文件 Secure Ftp 是一个基 ...
- 在c++代码中执行bat文件 【转】
我想在c++代码中执行磁盘上的一个bat文件. 这个bat文件的完整路径是:E:\\7z\\my7z.bat. 方法一: system("E:\\7z\\my7z.bat"); s ...
- Python 面向对象三(转载)
来源:Mr.Seven www.cnblogs.com/wupeiqi/p/4766801.html 四.类的特殊成员 上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段.方法和属性三 ...
- Android源码和内核源码的下载,编译和执行
笔者依据罗升阳老师的<Android 系统源码情景分析>一书,尝试下载,编译和执行Android源码和内核源码.但可能是软件源"被墙"或版本号更新的原因.期间遇到诸多问 ...
- spring boot 引用外部配置文件
java -jar xx.jar -Dspring.config.location=/data/apps/xx/application-prod.properties
- http header 具体解释
HTTP(HyperTextTransferProtocol)即超文本传输协议,眼下网页传输的的通用协议. HTTP协议採用了请求/响应模型,浏览器或其它client发出请求,server给与响应. ...
- php权威编程有趣部分
1.isset empty如果遇到null,isset判断为false;empty 判断为trueisset(var1, var2,...) 可以判断多个变量 2.unsetunset可以取消之前定义 ...
- HDU 5308 规律+模拟
给出N个数字N,要把全部数字用完.使用+-*/最后变为24.中间运算能够有有浮点数 对于1-14直接打表 15以上的能够通过13个同样数字得到24.然后使后面的数所有运算为0相加就可以 贴一发官方题解 ...