Django'da bir web uygulaması yazdım. Bir python komut dosyasından bir forma bazı veriler göndermem gerekiyor. Oturum açma devre dışı bırakıldığında posta (r2) düzgün çalışır. Giriş için doğru şekilde çalışıyorum (r1), ama bana form yazısı (r2) için 404 hatası veriyor. Giriş ikinci istek üzerine taşınmış gibi görünmüyor. Csrftoken ve sessionid, onları tanımak için test edilmek üzere kodlanmıştır. (URL baz kaldırıldı) İlgili kod:İstek ve Django kullanarak komut dosyasından web sayfasına giriş
url_login='../pecasRunLog/accounts/login/'
url_add_run='../pecasRunLog/model/'+region+'/add_run/'
client = requests.session()
client.get(url_login)
csrftoken = client.cookies['csrftoken']
login_data = {'username':user,'password':password, 'csrfmiddlewaretoken':csrftoken, 'next': '/pecasRunLog/'}
r1=client.post(url_login,data=login_data)
payload={'model_region':region_id,'scendir':scendir, 'mapit_scenario': schema, 'run_name':schema+timestamp, 'run_computer_name':os.environ['COMPUTERNAME'], 'run_computer_ip':get_lan_ip(), 'declared_user':declared_user, 'logged_in_user':getpass.getuser(), 'sd_schema':schema, 'sd_database':database, 'sd_host':get_lan_ip(), 'sd_port':pgport,'mapit_schema':schema, 'mapit_database':database, 'mapit_host':get_lan_ip(), 'mapit_port':pgport,'start_date':start_date, 'start_time':start_time, 'end_date':end_date, 'end_time':end_time,'logged_manually':3, 'csrfmiddlewaretoken':csrftoken, 'sessionid':'jtvv50cs3iyo9bjthbr2diujfmrrlsnf'}
r2=requests.post(url_add_run,payload)
r2 yerine 'requests' ait' client' itibaren yapılmalıdır ? –
'client.post' olarak değiştirdiğimde 'csrftoken' tanımıyor. Her iki komut da ayrı çalışır, ama birlikte değil. –
Oturumunuzu kullanmazsanız, ikinci isteğinizle birlikte gönderilen çerezlerden ilk isteğinizin gönderilmesini bekleyemezsiniz. –