Уведомления

Группа в Telegram: @pythonsu

#1 Март 26, 2009 03:51:22

Eric-S
От:
Зарегистрирован: 2009-03-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Здравствуйте!

Я хочу сделать програмку с web-интерфейсом.

Но есть несколько проблем. Надеюсь на вашу помощь.

во-первых я полный новичок в программировании на python.

во-вторых я очень плохо владею английским (а руского мануала пока не нашел). Ковыряюсь с офицальным доком
и несколькими найдеными русскими текстами.

Соответственно, заранее прошу прощения за совсем глупые вопросы. И надеюсь, на более подробные объяснения.

И так. Я уже нашел код сервера. Который как я думаю, должен делать нужное мне.
Но к сожалению он был выложен на форуме не очень аккуратно и все отступы накрылись. (вероятнее всего это главная причина, того что код не работает).

Пожалуйста подправте или дайте похожий, но рабочий код.


import BaseHTTPServer
import cgi
import string

class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def showPage(self,method,get_data,post_data):
self.wfile.write("HTTP/1.1 200 OK\n");
self.wfile.write("Content-Type: text/html\n")
self.wfile.write("\n");

responce = """
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Simple HTTP Server</title>
<meta name="description" content="Simple HTTP Server" />
</head>
<body style="background:white;">
Method $method<br />
Path: $path<br />
get data $get_data<br />
post data $post_data<br />

<form action="" method="post">
<input type="text" name="value1">
<input type="submit" name="value2">
</form>
</body>
</html>
"""
s = string.Template(responce)
responce = s.substitute(dict(
get_data=get_data,
post_data=post_data,
path=self.path,
method=method
))
self.wfile.write(responce);

def do_GET(self):
get_data = cgi.parse_qs(self.path[2:])
self.showPage('GET',get_data,{})


def do_POST(self):
get_data = cgi.parse_qs(self.path[2:])
cl, cl2 = cgi.parse_header(self.headers.get('content-length'))
qs = self.rfile.read(int(cl))
post_data = cgi.parse_qs(qs.decode())
self.showPage('GET',get_data,post_data)


class ChatServer(BaseHTTPServer.HTTPServer):
def __init__(self,address,handler):
BaseHTTPServer.HTTPServer.__init__(self,address,handler)


def main():
try:
server = ChatServer(('localhost', 8080), RequestHandler)
server.serve_forever()
except KeyboardInterrupt:
print('^C received, shutting down server')
server.socket.close();

if __name__ == '__main__':
main()
Вот так я запускаю, и получаю.

C:\Python\project>wserver
File “C:\Python\project\wserver.py”, line 6
def showPage(self,method,get_data,post_data):
^
IndentationError: expected an indented block



Офлайн

#2 Март 26, 2009 04:56:53

bobry
От:
Зарегистрирован: 2008-08-03
Сообщения: 54
Репутация: +  0  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Вообще мне кажется проще использовать какой нить webpy или cherrypy.



Офлайн

#3 Март 26, 2009 07:25:22

Eric-S
От:
Зарегистрирован: 2009-03-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Не ругайтесь пожалуйста, такими умными словами.

Надеюсь гугл мне подскажет их значение.



Офлайн

#4 Март 26, 2009 07:53:44

Eric-S
От:
Зарегистрирован: 2009-03-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Ага. Я пробежался по сайтам.
Не знаю. Не хочу делать поспешные выводы.
Но мне кажеться, что webpy или cherrypy это не совсем то, что мне нужно.
Как я понял, это фрэймворк для создания сайтов или даже движок портала. Простите, но в таком случае Python мне не нужен, я и на PHP всё чудесно разрулю, тем более опыт и знания имеються.

Я же хочу делать именно приложение. По сути обычное десктопное, но с web-интерфейсом для пользователя.
Оно будет демоном, висеть в фоне, сканируя локальные файлы, самостоятельно общаясь с другими машинками по сетке.
А при необходимости, юзер через браузер чтобы мог посмотреть результаты, изменить параметры и т.п.

Мне на первостях даже многозадачность не нужна. Если будет работать с одним клиентом и то хорошо.



Офлайн

#5 Март 26, 2009 08:19:44

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Eric-S
Я же хочу делать именно приложение. По сути обычное десктопное, но с web-интерфейсом для пользователя.
Оно будет демоном, висеть в фоне, сканируя локальные файлы, самостоятельно общаясь с другими машинками по сетке.
А при необходимости, юзер через браузер чтобы мог посмотреть результаты, изменить параметры и т.п.
Посмотрите circuits http://trac.softcircuit.com.au/circuits/ будет неплохой каркас для вашего приложения



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#6 Март 26, 2009 08:26:49

Eric-S
От:
Зарегистрирован: 2009-03-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Спасибо. На первый взгляд это подходит.
Попытаюсь разобраться.
А нет ли инфы на русском?
то через переводчик не очень удобно читать.



Офлайн

#7 Март 26, 2009 08:49:17

Eric-S
От:
Зарегистрирован: 2009-03-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Я чего-то наверное не понимаю.
скачал “circuits-1.1.1.tar.gz”, и теперь не пойму, что с этим делать.
Точнее я догадался, что его нужно как-то установить.
Соответственно придя к такому выводу запускаю сетап

E:\sources\python\circuits\circuits-1.1.1\circuits-1.1.1>setup
Traceback (most recent call last):
File “E:\sources\python\circuits\circuits-1.1.1\circuits-1.1.1\setup.py”, line
4, in <module>
from setuptools import setup, find_packages
ImportError: No module named setuptools
Что ещё за setuptools?
Скачал дистриб питона, установил его. Ничего не удалял.



Офлайн

#8 Март 26, 2009 09:27:09

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

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



Офлайн

#9 Март 26, 2009 09:30:26

Eric-S
От:
Зарегистрирован: 2009-03-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Спасибо. Самое внятное, что я пока нашел, это “вводный курс в python”

А о setuptools я уже понял что это и для чего. Только пока не нашел где его взять.



Офлайн

#10 Март 26, 2009 09:38:35

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

простой web-сервер генерирующий странички

Eric-S
Что ещё за setuptools?
Скачал дистриб питона, установил его. Ничего не удалял.
http://pypi.python.org/pypi/setuptools
Их многие пакеты используют



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version