python还未入门,求教一个python的问题

2010-09-03 08:46:51 +08:00
 iiduce
之前一直用C#,.net,最近转学python。昨晚写程序的时候遇到个问题不知怎么实现,向大家求教。

在.net(或VB)之类,都可以在页面中定义一个按钮,然后给按钮的click绑定服务器端事件。在python中应该怎样做类似的实现?

谢谢啦。
11153 次点击
所在节点    Python
58 条回复
billychow
2010-09-03 09:21:01 +08:00
又一个被 WebForm 毒害的...
makestory
2010-09-03 10:56:42 +08:00
不太清楚.net,VB。

不管怎样,你需要让点击这个按钮后会发起一次请求,写代码让服务器端响应这个请求做点什么事情。

具体讲可能这个按钮是个表单提交,或者触发一个ajax事件,服务起端可能是保存表单数据,或者返回搜索结果等等。建议你看一些web开发框架的文档,表单部分或ajax部分。
yuest
2010-09-03 10:57:27 +08:00
先确定一个框架,然后读它官方的 Tuturial 或者公认的入门好书。
iiduce
2010-09-03 11:01:51 +08:00
@makestory

使用ajax的方式我倒是会。 但是我不希望通过ajax调用接口,因为我不想别人通过fiddler之类的工具看到我的接口。
在.net中,我使用按钮触发服务器端事件,在服务器端使用WebRequest去请求,能够隐藏我调用的接口。
iiduce
2010-09-03 11:03:59 +08:00
@yuest
我学习的框架是django,书看了两本了。没找到怎么解决这个问题的方法。maybe,偶愚笨。。

django中用的静态模板,怎么触发view里的方法呢。。
ong
2010-09-03 11:13:12 +08:00
建议你花一周学下.net的MVC框架,然后来做python。
很多人VS拖拉了一俩年都不知道B/S的原理。
ccdjh
2010-09-03 11:19:57 +08:00
你是混淆了概念了吧?表单传递可以用post和get.
你的什么按钮触发服务器端事件。。是用在GUI上吧?例如使用Tkinter

import Tkinter import *

def xxxx()
pass

quit = Botton(command=xxxx)
iiduce
2010-09-03 11:20:48 +08:00
@ong
B/S原理跟这个有啥关系,我确实菜鸟。大大,给点提示好么。
iiduce
2010-09-03 11:22:16 +08:00
@ccdjh
不是在GUI中,是在网页中的按钮。

表单的post,get方法还是要暴漏http api和需要接收的参数名称。
sjIwBjkW8fgByvSO
2010-09-03 11:24:41 +08:00
又一个被 WebForm 毒害的...
____________________________
+10086
sjIwBjkW8fgByvSO
2010-09-03 11:26:40 +08:00
django中没有 类似。NET控件这类东西,那是.NET独有的方式。

实现这个你要做的是在HTML中自己编写。
iiduce
2010-09-03 12:10:28 +08:00
@jacy_hao
在html中怎么编写?能不能给一点点提示?
est
2010-09-03 12:23:34 +08:00
vs害人不浅啊不接啊。。。
iiduce
2010-09-03 12:51:22 +08:00
@est
你们都在说winform、vs害人不浅,倒是说说怎么实现相同的操作啊。

你们可能认为事件绑定就是.net控件特有的,但我认为在其他语言中,可能不叫绑定,但应该有相同的实现吧。

或者说 我希望让页面中的某个元素触发一个事件,这个事件是去调用一个http接口(可以get或put的url),但是我不想让别人知道这个http接口,在python中如何实现呢?
iiduce
2010-09-03 13:01:23 +08:00
或者举个具体的例子:

假设以get方式访问http://www.abc.com?code=1 ,可以返回一个json格式的数据。

我要在页面中实现用户点击一个按钮后,程序访问http://www.abc.com?code=1获得返回的json数据,用于在页面中显示。 在这个过程中,我不想用户知道数据是我访问了http://www.abc.com?code=1后获取的。

在python中如何实现?
yiyang
2010-09-03 13:26:16 +08:00
@iiduce 不要在这里问问题拉浪费时间,其实VS这种方式也很好阿,开发效率也高。越简单越好,不要以为你们知道原理一个个的写就牛必了。关键是怎么最快出好用的产品赚钱啦
iiduce
2010-09-03 13:32:15 +08:00
@yiyang

看样没人回了,我找个python论坛问问去。
flytwokites
2010-09-03 14:05:34 +08:00
这个问题已经不是python的问题了。
另外我很好奇你为什么不想要用户知道访问什么url得到数据?
Paranoid
2010-09-03 15:20:51 +08:00
难道我out了?

我都是这么写滴.
//include jquery js first
<script type="text/javscript">
$(document).ready(function(){
$('#btn_id').click(function(){
$.ajax({
type: 'get',
cache: false,
url: 'http://www.abc.com?code=1',
success: function(html){
// like this.
$('#update_ele_id').html(html);
}
//...
});
});
});
</script>
huacnlee
2010-09-03 16:33:02 +08:00
@iiduce 推荐看看 Ruby on Rails http://guides.rubyonrails.org

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/2253

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX