【问题标题】:send a time value from jquery to a python server将时间值从 jquery 发送到 python 服务器
【发布时间】:2012-04-19 22:41:38
【问题描述】:

假设世界标准时间 2005 年 8 月 2 日晚上 8:30 有一个活动。 我想通过发布请求将此值从 jquery 发送到 django 或 webapp 服务器,并使用相同的值更新服务器。 我该怎么做?

我尝试这样做的方式是:

$.post(
    url :"http://localhost:8080/m_post_data",
    data : {'start_date': "4/4/2012",
    'start_time': "14:30:00"})

在视图中(当前为 webapp2,在 appengine 上)我尝试以下操作:

class PostDataMatch(webapp2.RequestHandler):
  def post(self):
    mat = Match(
      start_date = self.request.get('start_date'),
      start_time = self.request.get('start_time'),
    )
    mat.put()

    self.response.write(self.request.get('start_time'))

模型定义如下:

class Match(db.Model):
    start_date = db.DateProperty()
    start_time = db.TimeProperty()  

但这给出了一个错误:

BadValueError: Property start_time must be a time

我应该如何尝试修复它?

【问题讨论】:

    标签: javascript jquery python django google-app-engine


    【解决方案1】:

    这样更好:

    from dateutil import parser
    start_date = self.request.get('start_date')
    start_time = self.request.get('start_time')
    tm = start_date + " " + start_time
    parser.parse(tm)
    

    样本输出:

    In [28]: strn = '4/5/2012 14:30:00'
    
    In [29]: parser.parse(strn)
    Out[29]: datetime.datetime(2012, 4, 5, 14, 30)
    

    或者没有 dateutil:

    In [62]: start_date
    Out[62]: '4/4/2012'
    
    In [63]: start_time
    Out[63]: '14:30:00'
    
    In [64]: date_time = start_date+" "+start_time
    
    In [65]: datetime.strptime(date_time, '%m/%d/%Y %H:%M:%S')
    Out[65]: datetime.datetime(2012, 4, 4, 14, 30)
    

    【讨论】:

      【解决方案2】:
      1. 您应该使用 DateTime 属性而不是两个属性
      2. 你应该parse the string into datetime object(使用strptime)

      【讨论】:

      • 是的,这是一个选项,但有没有办法在客户端本身做,我发送自己的 javascript 值是一个日期属性?
      • 然后将其格式化回字符串以便能够将其发送到服务器?最好坚持 Shay 的提议。
      • 能否请您在问题中填写上述日期并粘贴一个我在过去一小时内一直在尝试转换的 sn-p,并且一个接一个地出现错误。
      猜你喜欢
      • 2017-11-16
      • 2015-10-20
      • 2017-02-24
      • 1970-01-01
      • 2016-11-04
      • 2011-05-06
      • 2012-10-25
      • 1970-01-01
      • 2015-05-27
      相关资源
      最近更新 更多