Python 在web2py中按日期生成特定数据
我被我的申请卡住了。 我想根据我想选择的日期从数据库中生成特殊数据 以下是我的模型:Python 在web2py中按日期生成特定数据,python,date,web2py,Python,Date,Web2py,我被我的申请卡住了。 我想根据我想选择的日期从数据库中生成特殊数据 以下是我的模型: # -*- coding: utf-8 -*- # on_define_lion def on_define_lion(table): # represent table.time_taken.represent = ads_field_constructor.represent_integer table.ukuran_lebar_toko.represent = ads_field
# -*- coding: utf-8 -*-
# on_define_lion
def on_define_lion(table):
# represent
table.time_taken.represent = ads_field_constructor.represent_integer
table.ukuran_lebar_toko.represent = ads_field_constructor.represent_integer
table.weeks.represent = ads_field_constructor.represent_integer
table.mama_lemon_penjualan.represent = ads_field_constructor.represent_integer
table.zinc_refreashing_cool_penjualan.represent = ads_field_constructor.represent_integer
table.zinc_black_shine_penjualan.represent = ads_field_constructor.represent_integer
table.systema_spring_fresh_penjualan.represent = ads_field_constructor.represent_integer
table.systema_mentol_breeze_penjualan.represent = ads_field_constructor.represent_integer
table.emeron_anti_dandruff_penjualan.represent = ads_field_constructor.represent_integer
table.emeron_black_shine_penjualan.represent = ads_field_constructor.represent_integer
table.ciptadent_maxi_12_penjualan.represent = ads_field_constructor.represent_integer
table.mama_lemon_stock.represent = ads_field_constructor.represent_integer
table.zinc_refreashing_cool_stock.represent = ads_field_constructor.represent_integer
table.zinc_black_shine_stock.represent = ads_field_constructor.represent_integer
table.systema_spring_fresh_stock.represent = ads_field_constructor.represent_integer
table.systema_mentol_breeze_stock.represent = ads_field_constructor.represent_integer
table.emeron_anti_dandruff_stock.represent = ads_field_constructor.represent_integer
table.emeron_black_shine_stock.represent = ads_field_constructor.represent_integer
table.ciptadent_maxi_12_stock.represent = ads_field_constructor.represent_integer
table.total_transaksi_dalam_satuan_rupiah.represent = ads_field_constructor.represent_integer
table.foto_outlet.represent = ads_field_constructor.represent_url
table.foto_bukti_trasnsaksi.represent = ads_field_constructor.represent_url
table.foto_display_produk_1.represent = ads_field_constructor.represent_url
table.foto_produk_dislay_2.represent = ads_field_constructor.represent_url
table.foto_posm_1.represent = ads_field_constructor.represent_url
table.foto_posm_2.represent = ads_field_constructor.represent_url
# requires
table.auditor.requires = IS_NOT_EMPTY()
table.date_of_response.requires = ads_field_constructor.requires_date()
table.sync_date.requires = ads_field_constructor.requires_date()
table.time_of_response.requires = IS_TIME()
table.sync_time.requires = IS_TIME()
table.jenis_kunjungan.requires = ads_field_constructor.requires_set_not_empty(list_register_outlet)
table.berada_di_dalam_pasar_atau_tidak.requires = ads_field_constructor.requires_set_not_empty(list_pasar)
table.type_outlet.requires = ads_field_constructor.requires_set_not_empty(list_type_outlet)
table.katagori_produk_yang_di_jual_sembako.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_food.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_beverage.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_ice_cream.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_personal_care.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_household.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_cigarette.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_medicine.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_vitamin.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.katagori_produk_yang_di_jual_baby_care.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.kondisi_yang_ada_di_toko_chiller.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.kondisi_yang_ada_di_toko_coolbox.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.kondisi_yang_ada_di_toko_freezer_ice_cream.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.kondisi_yang_ada_di_toko_rak_rokok_special.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.kondisi_yang_ada_di_toko_special_branding.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.kondisi_yang_ada_di_toko_program_display.requires = ads_field_constructor.requires_set_not_empty(list_yes)
table.di_kunjungi_salesman_principle_terkait_program_ads.requires = ads_field_constructor.requires_set_not_empty(list_ya)
table.apakah_outlet_melakukan_transaksi.requires = ads_field_constructor.requires_set_not_empty(list_beli)
table.alasan_tidak_mau_beli.requires = ads_field_constructor.requires_set_not_empty(list_alasan_tidak_beli)
# create table : lion
db.define_table('lion',
Field('uuid'),
Field('auditor'),
Field('date_of_response', 'date'),
Field('time_of_response', 'time'),
Field('sync_date', 'date'),
Field('sync_time', 'time'),
Field('geo_location'),
Field('time_taken', 'integer'),
Field('jenis_kunjungan'),
Field('data_toko'),
Field('id_outlet'),
Field('nama_outlet'),
Field('area'),
Field('tag_location'),
Field('alamat'),
Field('kecamatan'),
Field('patokan'),
Field('berada_di_dalam_pasar_atau_tidak'),
Field('type_outlet'),
Field('katagori_produk_yang_di_jual_sembako'),
Field('katagori_produk_yang_di_jual_food'),
Field('katagori_produk_yang_di_jual_beverage'),
Field('katagori_produk_yang_di_jual_ice_cream'),
Field('katagori_produk_yang_di_jual_personal_care'),
Field('katagori_produk_yang_di_jual_household'),
Field('katagori_produk_yang_di_jual_cigarette'),
Field('katagori_produk_yang_di_jual_medicine'),
Field('katagori_produk_yang_di_jual_vitamin'),
Field('katagori_produk_yang_di_jual_baby_care'),
Field('kondisi_yang_ada_di_toko_chiller'),
Field('kondisi_yang_ada_di_toko_coolbox'),
Field('kondisi_yang_ada_di_toko_freezer_ice_cream'),
Field('kondisi_yang_ada_di_toko_rak_rokok_special'),
Field('kondisi_yang_ada_di_toko_special_branding'),
Field('kondisi_yang_ada_di_toko_program_display'),
Field('ukuran_lebar_toko', 'integer'),
Field('di_kunjungi_salesman_principle_terkait_program_ads'),
Field('nama_perusahaan_salesman_tersebut'),
Field('alasan_besedia_beli_di_motoris_adshouse'),
Field('foto_outlet'),
Field('data_transaksi'),
Field('weeks', 'integer'),
Field('apakah_outlet_melakukan_transaksi'),
Field('alasan_tidak_mau_beli'),
Field('mama_lemon_penjualan', 'integer'),
Field('zinc_refreashing_cool_penjualan', 'integer'),
Field('zinc_black_shine_penjualan', 'integer'),
Field('systema_spring_fresh_penjualan', 'integer'),
Field('systema_mentol_breeze_penjualan', 'integer'),
Field('emeron_anti_dandruff_penjualan', 'integer'),
Field('emeron_black_shine_penjualan', 'integer'),
Field('ciptadent_maxi_12_penjualan', 'integer'),
Field('mama_lemon_stock', 'integer'),
Field('zinc_refreashing_cool_stock', 'integer'),
Field('zinc_black_shine_stock', 'integer'),
Field('systema_spring_fresh_stock', 'integer'),
Field('systema_mentol_breeze_stock', 'integer'),
Field('emeron_anti_dandruff_stock', 'integer'),
Field('emeron_black_shine_stock', 'integer'),
Field('ciptadent_maxi_12_stock', 'integer'),
Field('total_transaksi_dalam_satuan_rupiah', 'integer'),
Field('foto_bukti_trasnsaksi'),
Field('foto_display_produk_1'),
Field('foto_produk_dislay_2'),
Field('foto_posm_1'),
Field('foto_posm_2'),
#auth.signature,
on_define = on_define_lion,
format = '%(uuid)s')
以下是我的模块:
#!/usr/bin/env python
# coding: utf8
from gluon import *
# represent
represent_integer = lambda value, field: \
SPAN('%s' % (format(value, ",d").replace(",", ".") ),
_class = 'text-success') if value > 0 else SPAN(0, _class = 'text-danger')
represent_url = lambda value, field: A('View', _target="_blank", _href="%s" % value) if value else ''
# requires
requires_date = lambda: \
IS_DATE(format = current.T('%Y-%m-%d'), error_message = current.T('Enter date as yyyy-mm-dd') )
requires_set_not_empty = lambda list_value: IS_IN_SET(list_value, zero = current.T('Choose One') )
# widget
widget_string = lambda field, value: \
SQLFORM.widgets.string.widget(field, value,
_class = "form-control string",
_placeholder = current.T('Should be filled') )
我想创建一个如下所示的控制器:
选择日期
开始日期:_________
结束日期:__________
提交(按钮)
所以在我按下提交按钮之后,我想要一个表来查看日期开始和日期结束之间的数据库。帮我一把,谢谢
------U p D A T D------
我在控制器中使用此代码
def non_register():
form = SQLFORM.factory(
Field("start_date", type="date"),
Field("end_date", type="date"))
if form.process().accepted:
q = ((db.lion.date_of_response >= form.vars.start_date) &
(db.lion.date_of_response <= form.vars.end_date))
rows = db(q).select()
return dict(form=form,rows=rows)
def non_寄存器():
form=SQLFORM.factory(
字段(“开始日期”,type=“日期”),
字段(“结束日期”,type=“日期”))
如果接受form.process():
q=((db.lion.date\u of\u response>=form.vars.start\u date)&
(db.lion.date_of_response可以用来创建所需的表单
form = SQLFORM.factory(
Field("start_date", type="date"),
Field("end_date", type="date"))
这将生成很好的日期选择器,form.vars.start\u date
和form.vars.end\u date
将是可以直接包含在DAL查询中的datetime.date
实例
q = ((db.yourtable.date >= form.vars.start_date) &
(db.yourtable.date <= form.vars.end_date))
rows = db(q).select()
q=((db.yourtable.date>=form.vars.start\u date)&
(db.yourtable.date您的模型看起来像一个或另一个字段,而应该是一个引用。因此,我必须定义另一个表以在我的表单中模拟结果?@Alexaxel您将查询放在错误的位置。它应该像db(查询)。选择(…)
,如我的示例所示。它显示了另一个错误,你能检查我更新的问题吗?我写错了吗?@Alexaxel请按照我的示例。你正在调用db()
,没有查询,它应该是db(q)。选择()
其中q
正是我在示例中所说的。已经完成了您的代码,先生,谢谢您。但是如果我实现了您的代码,我会遇到这样的错误:“Field”对象没有属性“date”,我会写这个(db.lion.date\u of_response.date>=form.vars.start\u date)响应字段的.db.lion.date\u包含类似于2017-02-28的数据,因此错误来自何处?感谢您跟踪“.date”是错误的,它应该是:db.lion.date\u\u响应>=form.vars.start\u date
。
q = ((db.yourtable.date >= form.vars.start_date) &
(db.yourtable.date <= form.vars.end_date))
rows = db(q).select()