У меня работают 2 приложения с общей базой данных в mysql. 1) Приложение для выставления счетов 2) Приложение для бухгалтерского учета
, поэтому после того, как я сделаю запись в приложении 1, его результаты необходимо будет опубликовать в базе данных приложения 2 в форме бухгалтерского ваучера. так что я сделал
Я создал модуль в app2 и попытался импортировать его в app1, используя follwing,
из приложений.Accounting.modules.default1 import bill_ledger_processing
где bill_ledger_processing - это только функция i, определенная с помощью @ auth.requires_login (), код этой функции выглядит следующим образом: `########################## ######. app2 / modules / default1.py ################################## ####
import requests
from gluon import current
#from gluon.tools import Auth
auth=current.auth
cache=current.cache
import os
from uuid import getnode as get_mac
print("ok")
request = current.request
def exists(path):
r = requests.head(path)
return r.status_code == requests.codes.ok
from datetime import datetime
from dateutil.relativedelta import relativedelta
@auth.requires_login()
def bill_ledger_processing(sessionpid,sessionjt,sessionldate,
sessionDescription.....................):
#def bill_ledger_processing():#https://groups.google.com/forum/#!topic/web2py/fnN3qa6brzA
print(auth.user)
import datetime
from gluon import SQLFORM
#db = DAL('sqlite://storage.sqlite')
db = current.dba
dba = current.db
session=current.session
. .
....
....
...
. . . . .
return locals()
#
`
и теперь будет проблема ....
когда я вызываю функцию модуля app2 путем импорта в app1 ...
`
############################# app1/controller/default.py ##################
@auth.requires_login()
def printssss():
rows=request.vars.row
mode=request.vars.mode
...
.....
bill_ledger_processing(sessionpid,sessionjt,sessionldate,sessionDescription.....................) return dict(rows=rows,mode=mode)
#############################################################################
`
`
##################################### app1/views/print.html ###########################################
<script>
jQuery('#printbutton').click(function(){
ajax('{{=URL('default', 'printssss')}}',['rec','mode'],function(html) {
jQuery('#callback-target').html(html);
printWindow = window.open("http://print.com", "_blank");
printWindow.document.write('<html><head>');
printWindow.document.write('<style type="text/css"> @media print{ th, td {font-size: 14px; } body {display:inline;font-family:"Consolas"; font-size: 14px;} @page{ size: 6in 6in; margin:auto; margin-left: 10mm; margin-right: 10px; margin-top: 0mm; margin-bottom: 0px;padding-top:0px; }}</style>');
printWindow.document.write('</head><body>');
printWindow.document.write('<p>');
printWindow.document.write(document.getElementById('callback-target').innerHTML);
printWindow.document.write('</p>');
printWindow.document.write('</body></html>');
printWindow.print();
printWindow.close();
$("#callback-target").html("");
});
});
});
</script>
#################################################################################`
при нажатии кнопки печати он распечатает счет-фактуру из def printssss () приложения1: и затем выполнит bill_ledger_processing (.. ...)
ТЕПЕРЬ ИНОГДА ПРИ ВЫПОЛНЕНИИ bill_ledger_processing выдаст ошибку как 401 unauthorized? т.е.
jquery.js:4
POST http://127.0.0.1:8000/printssss 401 (UNAUTHORIZED)
XHR failed loading: POST "http://127.0.0.1:8000/printssss".
эта ошибка кажется настолько случайной, что каждый раз, когда я убиваю сервер и перезапускаю его, он работает в течение некоторого времени или дней без вмешательства, и внезапно появляется ошибка. ТАКЖЕ очистка кеша в админке или браузере web2py не помогла, также иногда перезапуск решает проблему или иногда проект размещается в pythonanywhere, где я столкнулся с аналогичной проблемой, как у моего ноутбука.
я могу не отлаживать это, поскольку нажатие на сообщение об ошибке вызовет printssss () с пустыми значениями формы ...
Невозможно продолжить с ошибкой. пожалуйста, помогите мне. С уважением и уважением