Форум сайта python.su
0
добрый день!
Есть страница, генерируемая wsgi, на ней есть данные, вытягиваемые из базы firebird.
Также на странице есть формы, по которым новые данные insert'ятся через post-запрос. По факту insert'а, переходим на начальную страницу, обновляем ее, видим, что данные изменились. Insert'им вторую запись. Но данные не обновляюся. То есть в базу уже новые данные, на странице - старые.
Грешил на кэш - убрал (no-cache,no-store,max-age=0). Если сделать рестарт Апача - все данные свежие.
Подскажите, пожалуйста, как это можно поправить?
Офлайн
Одно из двух: ждём телепатов или вы таки показываете нам исходный код вашего сайта.
Офлайн
0
lorienвот
Одно из двух: ждём телепатов или вы таки показываете нам исходный код вашего сайта.
Прикреплённый файлы:
myapp.py (7,3 KБ)
Офлайн
75
#!/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]
Офлайн