Уведомления

Группа в Telegram: @pythonsu

#1 Март 15, 2014 13:42:48

Nasmork
Зарегистрирован: 2014-02-02
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

помощь с web

добрый день!
Есть страница, генерируемая wsgi, на ней есть данные, вытягиваемые из базы firebird.
Также на странице есть формы, по которым новые данные insert'ятся через post-запрос. По факту insert'а, переходим на начальную страницу, обновляем ее, видим, что данные изменились. Insert'им вторую запись. Но данные не обновляюся. То есть в базу уже новые данные, на странице - старые.
Грешил на кэш - убрал (no-cache,no-store,max-age=0). Если сделать рестарт Апача - все данные свежие.

Подскажите, пожалуйста, как это можно поправить?

Офлайн

#2 Март 15, 2014 13:48:47

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

помощь с web

Одно из двух: ждём телепатов или вы таки показываете нам исходный код вашего сайта.

Офлайн

#3 Март 15, 2014 13:52:09

Nasmork
Зарегистрирован: 2014-02-02
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

помощь с web

lorien
Одно из двух: ждём телепатов или вы таки показываете нам исходный код вашего сайта.
вот

Прикреплённый файлы:
attachment myapp.py (7,3 KБ)

Офлайн

#4 Март 15, 2014 16:15:21

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

помощь с web

#!/usr/local/bin/python2.7
# -*- coding: utf-8 -*-
import fdb
output="""<html><head><link rel="shortcut icon" type="image/gif" href="static/bpk.gif" /> <title>добавить операцию</title><style>p{font-family:ubuntu;
font-size: 14px;}h1{font-family: ubuntu;font-size: 22px;font-weight:normal;}table{font-family: ubuntu;font-size: 14px;font-weight:normal;}</style></head><body><h1>"""+"текущее состояние"+"""</h1><table style="display: inline;"><thead>"""+"остатки"+"</thead><tbody>"
con=fdb.connect(host="localhost",database="/home/nasmork/accounts",user="Nasmork",password="123")
cur=con.cursor()
select_purchase="""select actives.NAME,rem.amount from REMINDERS as rem inner join (select active_id, max(record_number) as edge from REMINDERS group by active_id) as ttt on ttt.edge=rem.record_number and ttt.active_id=rem.active_id inner join ACTIVES on actives.ACTIVE_ID=ttt.active_id"""
select_debt="""select COUNTER_PARTIES.NAME,ARREARS.AMOUNT from ARREARS inner join (select debtor,max(record_number) as edge from ARREARS group by debtor) as debt_edge on debt_edge.edge=ARREARS.RECORD_NUMBER and debt_edge.debtor=ARREARS.DEBTOR inner join COUNTER_PARTIES on COUNTER_PARTIES.PARTY_ID=ARREARS.DEBTOR"""
select_total_assets="""select summa from total_assets"""
select_total_debt="""select summa from total_debt"""
select_last_txn="""select first 1 ledger.CREATION_TIMESTAMP,actives.NAME, ledger.AMOUNT,TRANSACTION_TYPES.NAME from ledger inner join actives on actives.ACTIVE_ID=ledger.ACTIVE_ID inner join transaction_types on TRANSACTION_TYPES.ID=ledger.TRANSACTION_TYPE order by ledger.record_number desc"""
select_actives="""SELECT ACTIVE_ID, NAME FROM ACTIVES"""
select_parties="""select party_id,name from COUNTER_PARTIES"""
select_txntype="""SELECT ID, NAME FROM TRANSACTION_TYPES where id not in(7,10,11,12,13)"""
cur.execute(select_purchase)
for elem in cur.fetchall():
    output=output+"<tr><td>"+str(elem[0])+"</td><td>"+str(float(elem[1]))+"</td></tr>"
output=output+"""</tbody></table><table style="display: inline;"><thead>"""+"долги"+"""</thead><tbody>"""
cur.execute(select_debt)
for elem in cur.fetchall():
    output=output+"<tr><td>"+str(elem[0])+"</td><td>"+str(float(elem[1]))+"</td></tr>"
output=output+"""</tbody></table><table style="display: inline;"><thead>"""+"общее"+"""</thead><tbody>"""
cur.execute(select_total_assets)
asset_x=cur.fetchone()
asset_x=str(float(asset_x[0]))
output=output+"<tr><td>"+"всего активов"+"""</td><td style="padding-left:10px;">"""+asset_x+"</td></tr>"
cur.execute(select_total_debt)
debt_x=cur.fetchone()
debt_x=str(float(debt_x[0]))
output=output+"<tr><td>"+"всего долгов"+"""</td><td style="padding-left:10px;">"""+debt_x+"</td></tr>"
cur.execute(select_last_txn)
output=output+"<tr><td>"+"последняя операция"
lst=cur.fetchone()
for i in xrange(len(lst)):
    output=output+str(lst[i])+" "
output=output+"</td></tr></tbody></table>"
output=output+"""<h1>добавить покупку</h1><form ID="addtxn" name="addtxn" action="parsed.py" method="POST"> <input value="submit" type="submit"><table><tbody><tr><td>сумма</td><td>чек</td><td>номер чека</td><td>тип транзакции</td><td>актив</td><td>время и дата</td>
<td>описание</td></tr><tr><td><input ID="txnsum" name="txnsum" type="text"> </td><td><select ID="selectcheck" name="selectcheck">"""
output=output+"""<option value="1">без чека</option><option value="2">новый чек</option><option value="3">старый чек</option><option value="4">ввести вручную</option></select>"""
output=output+"""</td><td><input ID="checknum" name="checknum" type="text"> </td><td><select ID="selecttxntype" name="selecttxntype">"""
cur.execute(select_txntype)
for elem in cur.fetchall():
    output=output+"""<option value=" """+str(elem[0])+""" ">"""+str(elem[1])+"""</option>"""
output=output+"""</select></td><td><select ID="selectactives" name="selectactives">"""
cur.execute(select_actives)
for elem in cur.fetchall():
    output=output+"""<option value=" """+str(elem[0])+""" ">"""+str(elem[1])+"""</option>"""
output=output+"""</select></td><td><input ID="datentime" name="datentime" type="text"></td><td><input id="descr" name="descr" type="text"> </td></tr></tbody></table></form>"""
output=output+"""<h1>добавить перевод</h1><form id="addremittance" name="addremittance" action="input.py" method="post"><input value="submit" type="submit"><table><tbody><tr><td>сумма</td><td>источник</td><td>адресат</td><td>время и дата</td><td>описание</td></tr><tr><td><input id="remittancesum" name="remittancesum" type="text"></td><td><select ID="selectremsource" name="selectremsource">"""
cur.execute(select_actives)
for elem in cur.fetchall():
    output=output+"""<option value=" """+str(elem[0])+""" ">"""+str(elem[1])+"""</option>"""
output=output+"""</select></td><td><select ID="selectremaddressee" name="selectremaddressee">"""
cur.execute(select_actives)
for elem in cur.fetchall():
    output=output+"""<option value=" """+str(elem[0])+""" ">"""+str(elem[1])+"""</option>"""
output=output+"""</select></td><td><input id="datentimerem" name="datentimerem" type="text"></td><td><input id="descrrem" name="descrrem" type="text"></td></tr></tbody></table></form>"""
output=output+"""<h1>добавить запись о долге</h1><form id="adddebt" name="adddebt" action="test.py" method="post"><input value="submit" type="submit"><table><tbody><tr><td>сумма</td><td>чек</td><td>номер чека</td><td>тип долга</td><td>движение средств</td><td>актив</td><td>сторона</td><td>время и дата</td><td>описание</td></tr><tr><td><input id="debtsum" name="debtsum" type="text"></td><td><select id="selectdebtcheck" name="selectdebtcheck"><option value="1">без чека</option><option value="2">новый чек</option><option value="3">старый чек</option><option value="4">ввести вручную</option></select></td><td><input id="checkdebtnum" name="checkdebtnum" type="text"></td><td><select id="selectdebttype" name="selectdebttype"><option value="1">выдача кредита</option><option value="2">получение кредита</option></select></td><td><select id="selectdebtflow" name="selectdebtflow"><option value="1">с движением средств</option><option value="2">без движения средств</option></select></td><td><select id="selectactivedebt" name="selectactivedebt">"""
cur.execute(select_actives)
for elem in cur.fetchall():
    output=output+"""<option value=" """+str(elem[0])+""" ">"""+str(elem[1])+"""</option>"""
output=output+"""</select></td><td><select ID="party" name="party">"""
cur.execute(select_parties)
for elem in cur.fetchall():
    output=output+"""<option value=" """+str(elem[0])+""" ">"""+str(elem[1])+"</option>"
output=output+"""</select></td><td><input id="datentimedebt" name="datentimedebt" type="text"></td><td><input id="descrdebt" name="descrdebt" type="text"></td></tr></table></html>"""
con.close()
def application(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type','text/html;charset=utf8'),('Content-Length', str(len(output))),('Cache-Control','no-cache;no-store;max-age=0')]
    start_response(status, response_headers)
    return [output]

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version