Ajax如何调用服务段的django调用python脚本本

如何用javascript返回一个参数来调用一个python脚本_百度知道
该问题可能描述不清,建议你
如何用javascript返回一个参数来调用一个python脚本
我有更好的答案
如何用javascript返回一个参数来调用一个python脚本?我的网页中,有个按钮要执行serialGen()函数,其js代码如下,function serialGen(){var Pattern = document.getElementById(&pattern&);//??????????????document.forms[1].elements[&pep&].value = 上面结果;}我想实现的功能是:得到pattern的值,将其加2,然后赋值给document.forms[1].elements[&pep&].value这个加2是由服务器上的一个python程序实现的。import sysa = sys.argv[1]a = int(a)b = a+2return b 不知中间问号那块该如何写。PS::::这里我说加2仅仅是举个例子,实际上我的python程序要比这个复杂得多,所以大家不要说加2可以直接在js中实现。帮帮忙... [解决办法]1.如楼上说的用AJAX,异步方式在回调里写加2后的输出,同步方式可以按现在的样子在取回加2的值后输出。2.如果不要求局部刷新,在要加2时直接提交跳转到后台,由后台处理完生成最后的结果页。[解决办法]要使用Ajax的,有个网址应该可以帮到你,[解决办法]你可以python 生成一个文件 xml json等皆可然后js ajax 来获取这个文本内容。[解决办法]最常用的是用jquery的ajax功能
function serialGen(){
var Pattern = document.getElementById(&pattern&);
//用get方式将Pattern的值传到服务器上, 当然也可以使用post
$.get('ajax/test.html?patern=' + Pattern.value, function(data) { document.forms[1].elements[&pep&].value =});}
为您推荐:
其他类似问题
python的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。没有更多推荐了,
不良信息举报
举报内容:
Python Web 实现Ajax调用
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!jquery ajax调用webservice(C#)要注意的几个事项:
1、web.config里需要配置2个地方
&httpHandlers&&&&&& &remove verb="*" path="*.asmx"/&&&&&&
&add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf"/&&&& &/httpHandlers&在&system.web&&/system.web&之间加入&webServices&&&&&& &protocols&&&&&&&& &add name="HttpPost" /&&&&&&&& &add name="HttpGet" /&&&&&& &/protocols&&&& &/webServices&
2.正确地编写webserivce的代码
/// &summary&
/// UserValidate 的摘要说明
/// &/summary&
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class UserValidate : System.Web.Services.WebService
DFHon.Content.Common.rootPublic rp = new DFHon.Content.Common.rootPublic();
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string ValidateUserLogState()
string result = "";
HttpCookie cookie = HttpContext.Current.Request.Cookies["DHFonMenberInfo"];
if (cookie != null)
string username = System.Web.HttpUtility.UrlDecode(cookie["MenberName"]);
int ipoint = 0;
int gpoint = 0;
DataTable dt = UserBll.ExecuteUserAllInfo(username);
if (dt.Rows.Count & 0)
ipoint = int.Parse(dt.Rows[0]["iPoint"].ToString());
gpoint = int.Parse(dt.Rows[0]["gPoint"].ToString());
result = "{'user':{'id':'" + cookie["UserId"] + "','name':'" + username + "','message':'" + rp.getUserMsg(DFHon.Global.CurrentCookie.UserName) + "','ipoint':'" + ipoint.ToString() + "','gpoint':'" + gpoint.ToString() + "'}}";
result = "{'user':{'id':'0','name':'','message':'0','ipoint':'0','gpoint':'0'}}";
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string UserLogin(string userName, string userPwd)
string returnVal = "";
GlobalUserI
DFHon.Content.UserLogin _UserLogin = new DFHon.Content.UserLogin();
EnumLoginState state = _UserLogin.PersonLogin(HttpUtility.UrlDecode(userName), userPwd, out info);
if (state == EnumLoginState.Succeed)
DFHon.Global.CurrentCookie.Set(info);
DFHon.API.PDO.DiscuzNT.PassportLogin.UserLogin(Server.UrlDecode(userName), userPwd, -1);
int ipoint = 0;
int gpoint = 0;
DataTable dt = UserBll.ExecuteUserAllInfo(userName);
if (dt.Rows.Count & 0)
ipoint = int.Parse(dt.Rows[0]["iPoint"].ToString());
gpoint = int.Parse(dt.Rows[0]["gPoint"].ToString());
returnVal = "{'user':{'id':'" + info.UserId.ToString() + "','name':'" + info.UserName + "','message':'" + rp.getUserMsg(userName) + "','ipoint':'" + ipoint.ToString() + "','gpoint':'" + gpoint.ToString() + "'}}";
int ids = 0;//状态:-2用户被锁定 -1用户名密码错误
switch (state)
case EnumLoginState.Err_Locked:
case EnumLoginState.Err_UserNameOrPwdError:
returnVal = "{'user':{'id':'" + ids + "','name':'','message':'0','ipoint':'0','gpoint':'0'}}";
returnVal = "{'user':{'id':'0','name':'','message':'0','ipoint':'0','gpoint':'0'}}";
return returnV
[WebMethod]
public string UserLogout()
if (HttpContext.Current.Request.Cookies["DHFonMenberInfo"] != null)
HttpCookie cookie = new HttpCookie("DHFonMenberInfo");
cookie.Expires = System.DateTime.Now.AddDays(-1);
cookie.Domain = DFHon.Config.BaseConfig.getV("weblogin");
HttpContext.Current.Response.AppendCookie(cookie);
return "1";
DFHon.Content.user UserBll = new DFHon.Content.user();
[WebMethod]
public string ValidateUserEmail(string email)
string result = "0";//返回的结果 -2邮箱为空 -1邮箱格式不正确 0邮箱存在 1填写正确
if (string.IsNullOrEmpty(email))
result = "-2";//邮箱为空
else if (!IsValidEmail(email))
result = "-1";//邮箱格式不正确
else if (UserBll.sel_useremail(email) & 0)
result = "0";//邮箱存在
result = "1";//可以注册
[WebMethod]
public string ValidateUserName(string username)
string result = "0";//返回值:-1用户名长度为2-16;0用户名存在;1可以注册
if (username == "" || username == null || username.Length & 2 || username.Length & 16)
result = "-1";
else if (UserBll.sel_username(username) != 0)
result = "0";
result = "1";
public bool IsValidEmail(string strIn)
{ // Return true if strIn is in valid e-mail format.
return System.Text.RegularExpressions.Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
&3、前台JQuery代码
$(function() {
$("#userloging").show();
//登录框处理开始
//加载登录状态
type: "POST", //访问WebService使用Post方式请求
contentType: "application/charset=utf-8", //WebService 会返回Json类型
url: "/API/Service/UserValidate.asmx/ValidateUserLogState", //调用WebService
data: "{}", //Email参数
dataType: 'json',
beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/ charset=utf-8"); },
error: function(x, e) { },
success: function(response) { //回调函数,result,返回值
$("#userloging").hide();
var json = eval('(' + response.d + ')');
var userid = json.user.
if (userid & 0) {
$("#spanusername").html(json.user.name);
$("#spanmessagenum").html(json.user.message);
$("#userloginsucced").show();
$("#userloginbox").hide();
$("#userlogbutton").click(function() {
var username = $("#username").val();
var userpwd = $("#userpassword").val();
if (username != "" && userpwd != "") {
$("#userloging").show();
type: "POST", //访问WebService使用Post方式请求
contentType: "application/charset=utf-8", //WebService 会返回Json类型
url: "/API/Service/UserValidate.asmx/UserLogin", //调用WebService
data: "{userName:'" + username + "',userPwd:'" + userpwd + "'}", //Email参数
dataType: 'json',
beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/ charset=utf-8"); },
error: function(x, e) {
success: function(result) { //回调函数,result,返回值
$("#userloging").hide();
var json = eval('(' + result.d + ')');
var userid = json.user.
if (userid & 0) {
$("#spanusername").html(json.user.name);
$("#spanmessagenum").html(json.user.message);
$("#userloginsucced").show();
$("#userloginbox").hide();
switch (userid) {
alert("用户被锁定!请30分钟后再登录!");
$("#username").focus();
alert("用户名或密码错误!请核对您的用户名和密码!");
$("#userpassword").focus();
alert("登录失败!请核对您的用户名和密码之后重试!");
$("#userpassword").focus();
else if (username == "") {
alert("用户名不能为空!");
$("#username").focus();
else if (userpwd == "") {
alert("密码不能为空!");
$("#userpassword").focus();
$("#logout").click(function() {
$("#userloging").show();
type: "POST", //访问WebService使用Post方式请求
contentType: "application/utf-8", //WebService 会返回Json类型
url: "/API/Service/UserValidate.asmx/UserLogout", //调用WebService
data: "{}", //Email参数
dataType: 'json',
beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/ charset=utf-8"); },
success: function(result) { //回调函数,result,返回值
$("#userloging").hide();
if (result.d & 0) {
$("#userloginsucced").hide();
$("#userloginbox").show();
}); //登录框处理结束
&同时,Ajax的请求,可以参考
阅读(...) 评论()先要起一个服务 server.py,可以支持python的cgi脚本。
1 #!coding:utf8
2 from BaseHTTPServer import HTTPServer
3 from CGIHTTPServer import CGIHTTPRequestHandler
5 port=8080
7 httpd=HTTPServer(('',port),CGIHTTPRequestHandler)
8 print("Starting simple_http on port:"+str(httpd.server_port))
9 httpd.serve_forever()
在服务脚本相同的目录下新建cgi-bin文件夹,放置python的cgi脚本,getuser.py
1 #!coding:utf8
2 import cgi,cgitb
3 import urllib2
4 form=cgi.FieldStorage()
5 name=form.getvalue('user_name')
6 age=form.getvalue('user_age')
7 sex=form.getvalue('user_sex')
8 data=name
9 print "Content-type: text/html"
13 if name != None and len(name) & 0:
print "&p id=name&%s&/p&"%name
print "&p id=name&请输入相关信息&/p&"
html页面,以post方式发送请求,并返回用户名,ajax.html,和server.py在一个目录下:
&meta http-equiv="Content-Type" content="text/ charset=utf-8" /&
&title&Ajax Post 传值&/title&
&script language="javascript"&
function saveUserInfo()
//获取接受返回信息层
var msg = document.getElementById("msg");
//获取表单对象和用户信息值
var f = document.user_
var userName = f.user_name.
var userAge
= f.user_age.
var userSex
= f.user_sex.
//接收表单的URL地址
var url = "/cgi-bin/getuser.py";
//需要POST的值,把每个变量都通过&来联接
var postStr
= "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userS
//实例化Ajax
//var ajax = InitAjax();
var ajax = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest)
//Mozilla 浏览器
ajax = new XMLHttpRequest();
if (ajax.overrideMimeType)
//设置MiME类别
ajax.overrideMimeType("text/xml");
else if (window.ActiveXObject)
// IE浏览器
ajax = new ActiveXObject("Msxml2.XMLHTTP");
ajax = new ActiveXObject("Microsoft.XMLHTTP");
catch (e) {}
if (!ajax)
// 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
//通过Post方式打开连接
ajax.open("POST", url, true);
//定义传输的文件HTTP头信息
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//发送POST数据
ajax.send(postStr);
//获取执行状态
ajax.onreadystatechange = function()
//如果执行状态成功,那么就把返回信息写到指定的层里
if (ajax.readyState == 4 && ajax.status == 200)
msg.innerHTML = ajax.responseT
//msg.innerHTML = ajax.
&div id="msg"&&/div&
&form name="user_info" method="post" action=""&
姓名:&input type="text" name="user_name" /&&br /&
年龄:&input type="text" name="user_age" /&&br /&
性别:&input type="text" name="user_sex" /&&br /&
&input type="button" value="提交表单" onClick="saveUserInfo()"&
首先运行server.py:
启动浏览器,输入127.0.0.1:8080:
点击ajax.html:
输入用户名,年龄,性别,点击提交或者什么都不输入
阅读(...) 评论()如何在网页中调用python脚本?_百度知道
如何在网页中调用python脚本?
已经用python写好了一个脚本,用于分析file.txt文件。打算写一个网页来在页面加载时和通过button来调用这个脚本,不知是否可行?如何实现呢?谢谢了!
我有更好的答案
最常用的是用jquery的ajax功能是:
function serialGen(){
var Pattern = document.getElementById(&pattern&);
//用get方式将Pattern的值传到服务器上, 当然也可以使用post
$.get('ajax/test.html?patern=' + Pattern.value, function(data) { document.forms[1].elements[&pep&].value =});}
采纳率:94%
来自团队:
当然是不行的,脚本执行需要有 解释器的。也就是 例如 win平台下的 python.exe 文件。你可以使用web页面,将文件上传到服务器,然后在服务器执行脚本并将处理结果,返回到客户端。
抱歉没有问清楚,我的python脚本就是在WEB服务器上运行的。我看到可以通过CGI实现程序的调用,现在正在研究。现在html的内容是:
&form name=&test& method=“POST& action=&cgi-bin/test.py&&
&input type=&submit&&
&/form&但点击submit后会在页面直接显示test.py里的内容
你form表单没提交任何信息呀
本回答被网友采纳
为您推荐:
其他类似问题
您可能关注的内容
python的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 c 调用python脚本 的文章

 

随机推荐