Найти - Пользователи
Полная версия: Продолжаем химичить с python и html
Начало » Python для новичков » Продолжаем химичить с python и html
1 2 3
thomas
Все равно не выводит
py.user.next
Ту форму, которую я тебе скинул, проверь.
thomas
py.user.next


При выполнении твоей формы открылось пустой окно, данные не отобразились.
Единственное, что я поменял - убрал из окружения третий пайтон - у нас должен быть пайтон 2, но это не влияет на твой скрипт.
py.user.next
thomas
Единственное, что я поменял - убрал из окружения третий пайтон - у нас должен быть пайтон 2

#!/usr/bin/env python
# coding: utf-8
 
import cgi
 
print 'Content-Type: text/plane; charset=utf-8'
print
 
print 'Test cgi'
print cgi
 
print 'Test FieldStorage'
print cgi.FieldStorage
 
print 'Test form'
form = cgi.FieldStorage()
print form

Вот этот запусти и посмотри, что отвечает.
thomas
ответил вот это

 - - [29/Sep/2014 09:29:55] "POST /cgi-bin/form.py HTTP/1.1" 200 -
Traceback (most recent call last):
File "/usr/lib64/python2.6/CGIHTTPServer.py", line 248, in run_cgi
os.execve(scriptfile, args, os.environ)
OSError: [Errno 8] Exec format error
- - [29/Sep/2014 09:29:55] CGI script exit status 0x7f00
py.user.next
thomas
ответил вот это
Как-то неправильно переписал. Сначала запусти в консоли его.

Должен выдать:
[guest@localhost py]$ ./form.py 
Content-Type: text/plane; charset=utf-8

Test cgi
<module 'cgi' from '/usr/lib/python2.7/cgi.pyc'>
Test FieldStorage
cgi.FieldStorage
Test form
FieldStorage(None, None, [])
[guest@localhost py]$
thomas
починил трабл, при вводе данных с веб странички выдалось следующее в браузере:

Test cgi
<module 'cgi' from '/usr/lib64/python2.6/cgi.pyc'>
Test FieldStorage
cgi.FieldStorage
Test form
FieldStorage(None, None, [MiniFieldStorage('name', 'Admin'), MiniFieldStorage('email', 'trololo'), MiniFieldStorage('body', 'sesdf')])
py.user.next
Теперь к этому скрипту добавь в конце:
print dict(form)
 
for var in 'name', 'email', 'body':
    print var, '->', form[var].value, '<br>'
thomas
получилось вот это:

Test cgi
<module 'cgi' from '/usr/lib64/python2.6/cgi.pyc'>
Test FieldStorage
cgi.FieldStorage
Test form
FieldStorage(None, None, [MiniFieldStorage('name', 'user1'), MiniFieldStorage('email', 'email2'), MiniFieldStorage('body', 'about3')])
{'body': MiniFieldStorage('body', 'about3'), 'name': MiniFieldStorage('name', 'user1'), 'email': MiniFieldStorage('email', 'email2')}
name -> user1 <br>
email -> email2 <br>
body -> about3 <br>
py.user.next
Значит, работает всё.

thomas
При выполнении твоей формы открылось пустой окно, данные не отобразились.

Это может быть из-за того, что ты скобки не переделал, когда переделывал его с третьей версии на вторую. Хотя у меня в таком случае вообще не открывается даже пустая страница.

Теперь этот запусти.
#!/usr/bin/env python
# coding: utf-8
 
import cgi
 
print 'Content-Type: text/html; charset=utf-8'
print
 
form = cgi.FieldStorage()
for var in 'name', 'email', 'body':
    print var, '->', form[var].value, '<br>'
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB