我正在尝试使用ajax post请求发布一些数据并执行python文件,检索python文件中的数据,然后返回结果。 我有以下ajax代码 $(function () { $(“#upload”).on(“click”, function (e) { $.ajax({ type: ‘post’, url: “test1.py”, data: {‘param1′:’abc’}, async: false, success: function (response) { console.log(response); } }).done(function (data) { console.log(data); }); }); }); 以及以下python文件 #! /usr/bin/python from __future__ import print_function import cgi, cgitb def index(): data = cgi.FieldStorage() mydata = data[‘param1’].value return return “test” 我在param1上得到了一个关键词 – […]
预期的错误是我预期甚至在代码中自己提出的服务器中的错误。 例如,当用户尝试执行他没有足够权限的操作时,我会使用描述错误的消息引发PermissionError (自定义Exception )。 我一直在寻找一种处理AJAX情况预期错误的好方法。 唯一的要求是能够向用户显示错误消息,因为我想让我的用户处于正在发生的循环中。 我目前的方法是将错误消息打包到JSON对象中并将其发送回客户端 var ajaxResponse = $.ajax({ …. }); ajaxResponse.done(function(jsonObj) { if (jsonObj.success) { /* no error, do something */ } else { /* expected error returned, display jsonObj.error to user */ } }); ajaxResponse.fail(function(jqXHR, textStatus, errorThrown) { /* unexpected error returned */ }); 我有另一种方法,我不确定。 基本上,不是将预期错误的消息打包到JSON对象中,而是在我的django代码中,我将返回HttpResponse(content=”no sufficient privilege”, status=403) 。 客户端jQuery将被修改如下: […]
我在登录页面使用Django的表单。 I want to set focus to the first textField (username) when the page loads. 我尝试使用Jquery如下,但是没有得到结果。 forms.py: from django import forms class LoginForm(forms.Form): userName = forms.EmailField(max_length=25) password = forms.CharField( widget=forms.PasswordInput, label=”password” ) 的login.html % block headextra %} $(document).ready(function() { window.onload = function() { $(“#id_username”).focus(); // alert(‘test’) if I add this line its works // setting […]
models.py from django.db import models from django.contrib.auth.models import User STATUS_CHOICES = ((1, ‘Accepted’),(0, ‘Rejected’),) class Leave(models.Model): —- —- —- —- status = models.IntegerField(choices=STATUS_CHOICES, default = 0) reason_reject = models.CharField((‘reason for rejection’),max_length=50, blank=True) def __str__(self): return self.name admin.py from django.contrib import admin from .models import Leave @admin.register(Leave) class LeaveAdmin(admin.ModelAdmin): —— —— —– class Media: js = […]
我是jquery的初学者所以请耐心等待。 我有一个jquery函数,允许我选择多个复选框并创建一个字符串,如下所示: function getSelectedVals(){ var tmp =[]; $(“input[name=’checks’]”).each(function() { if ($(this).attr(‘checked’)) { checked = ($(this).val()); tmp.push(checked); } }); var filters = tmp.join(‘,’); alert(filters) return filters; } 然后我调用django视图函数并传递字符串,如下所示: selected = getSelectedVals(); var myurl = “/bills/delete/?id=” + selected; $.ajax({ type: “GET”, url: myurl, data: selected, cache: false }); 在服务器上,我有一个删除视图函数,它迭代复选框值并操作列表。 def delete(request): global myarray idx = request.GET[u’id’] listidx […]
我想将一个表 – 一个pandasdataframe – 显示为DataTable 。 在下面的简化示例中,我读取了用户提供的两个数字,用于确定表的行号和列号。 然后,正确显示此表的元素数,但不会出现该表。 我认为问题是我以错误的方式传递了表格。 当我尝试 return jsonify(number_elements=a * b, my_table=df) 我收到了错误 anaconda2 / lib / python2.7 / json / encoder.py“,第184行,默认情况下引发TypeError(repr(o)+”不是JSON可序列化的“) TypeError:0 1 2 3 0 51 35 10 84 1 30 60 79 24不是JSON可序列化的 如果我使用 return jsonify(number_elements=a * b, my_table=df.to_json()) 然后没有错误,但表仍然没有显示。 我该如何正确地做到这一点? 我的index.html文件如下所示: $(function() { $(‘a#calculate’).bind(‘click’, function() { $.getJSON(‘/_get_table’, { […]
我目前正在尝试显示每5秒更新一次的值列表到sqlite数据库。 我可以使用以下代码将结果转换为JSON格式: @app.route(‘/_status’, methods= [‘GET’, ‘POST’]) def get_temps(): db = get_db() cur = db.execute(‘select sensor_name, temp from cur_temps ORDER BY sensor_name’) #cur_temps = cur.fetchall() return jsonify(cur.fetchall()) 通过浏览器导航到网页返回 { “BoilerRoom”: 26.44, “Cylinder1”: 56.81, “Cylinder2”: 39.75, “Cylinder3”: 33.94 } 我想定期在网页上更新这些数据,而无需再次加载整个页面。 我陷入了第一道障碍,无法显示实际数据。 我正在使用的HTML代码是 {% extends “layout.html” %} {% block body %} $(function() { $(“#submitBtn”).click(function() { $.ajax({ type: “GET”, […]
我从如下的jQuery文件发送ajax请求,该文件需要JSON中的响应。 jQuery.ajax({ url: ‘/Control/getImageDetails?file_id=’+currentId, type: ‘GET’, contentType: ‘application/json’, success: function (data){ alert(data); } }); }); 在Python上,我发送了对Ajax请求的响应: record = meta.Session.query(model.BannerImg).get(fid) return_info = [record.file_id, record.filename, record.links_to] return result_info 这会以纯文本forms返回参数,因此不可能将其视为不同的值。 我相信当JSON解决这个问题时,发送python的响应。 我以前使用过JSON。 如何以JSON的forms返回响应?
我目前正在使用wtf处理地址表单,其中包含Country,State,City ..等等。 数据库全部使用FK设置。 class Country(db.Model): __tablename__ = ‘countries’ id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) users = db.relationship(‘User’, backref=’countries’, lazy=’dynamic’) class City(db.Model): __tablename__ = ‘cities’ id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) countries_id = db.Column(db.Integer, db.ForeignKey(‘countries.id’)) 现在我正在尝试实现链式选择域排序效果以优化用户体验。 期望的效果是不离开或刷新页面以使selectfield拉取数据取决于先前的选择字段。 例如,用户在国家/地区选择澳大利亚,然后国家的第二个选择区域应仅包含澳大利亚的州。 我已经对这个主题做了一些研究,但却无法提出令人满意的解决方案。 以下是我发现的两种可能尚未解决的解决方案。 1.使用jQuery-plugin,例如Chained。 但是,此插件需要逐行编码。 如果我采用这种解决方案,那么至少会有另外400多条线路,这不是非常pythonic。 例如: — 3 series 5 series 6 series A3 […]
之前已经问过这个问题,我想我已经完成了我在那里看过的事情,但我真的不知道自己做错了什么。 我对jQuery了解不多,但我会尽力解释我想要做的事情。 我想基于来自数据库的查询自动完成,所以我在我的模板中有这个: $(function() { $( “#function_name” ).autocomplete({ source: ‘{{url_for(“autocomplete”)}}’, minLength: 2, }); }); {{form.function_name}} 该表单由此Flask表单类生成: class SearchForm(Form): function_name = TextField(‘function_name’, validators = [Required()]) 这是自动完成function: @app.route(‘/autocomplete’) def autocomplete(): results = [] search = request.args.get(‘term’) results.append(db.session.query(Table.Name).filter(Table.Name.like(‘%’ + search + ‘%’)).all()) return dumps(results) 所以jQuery应该转到自动完成function并将一些JSON恢复为自动完成function。 至少我认为这是正在发生的事情。 我在这做错了什么?