Sveiki, iškilo problemėlė, reikia atlikti šiokį tokį darbelį ir reiktų man pakurti web servisa su Python. Serviso esmė, kad iš saito. php (arba vb) užklausomis, kreiptis i servisą ir gauti ko reikia, tada gautus duomenis toliau naudot php pagalba tarkim. googlinau nieko padoraus nerandu kaip ta servisą iškviesti su php ar VB, su pythonu pagal pavyzdzius tai suprantu kas kaip, tik kad ten pasileidžia http://localhost:8080 tarkim tai kaip prieit prie tokio neturiu supratimo. Gal kas ką nors panašaus darę ar susidūrę, būčiau labai dėkingas. gal būt yra koks geresnis serviso kūrimo būdas aš dariau su ZSI pagalba, pradedantysis esu ant Python tai nesmerkit be to sedžiu ant win tai irgi nesmerkit
sveiki dar karteli, sirex dekui už atsakyma aš kažko tokio ir ieškojau, bet ten man pavyzdys tas kazko tais klaida generuoja, nors wsdl lyg ir gera sukuria su soapUI bent jau nerodo kad blogas butų.
saite: http://www.pychef.com/2009/10/creating- ... in-django/
radau lyg tiksliai ko man reikėtų tik va kadangi pradedantysis ant python čia tokių klausimų iškilo gal kas galėsit padėt.
pagal aprašymą susikūriau urls.py :
from django.conf.urls.defaults import patterns
urlpatterns = patterns(
'',
(r'^my-soap-service/', 'myproject.mysoapapp.views.my_soap_service'),)
susikūriau views.py:
from myproject.mysoapapp.soap import DjangoSoapApp
from myproject.mysoapapp.soap import soapmethod
from myproject.mysoapapp.soap import soap_types
class MySoapService(DjangoSoapApp):
__tns__ = 'http://localhost/my-soap-service/'
@soapmethod(soap_types.String, _returns=soap_types.String)
def say_hello(self, name):
results = 'Hello, %s' %name
return results
my_soap_service = MySoapService()
taip pat yra ir soap.py kataloge:
import base64
from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib.service import soapmethod
from soaplib.serializers import primitive as soap_types
from django.conf import settings
from django.http import HttpResponse
def extract_basic_credentials(request):
username, password = None, None
if 'HTTP_AUTHORIZATION' in request.META:
auth = request.META['HTTP_AUTHORIZATION'].split()
if len(auth) == 2:
if auth[0].lower() == "basic":
username, password = base64.b64decode(auth[1]).split(':')
return username, password
class Http401(Exception):
pass
class Http403(Exception):
pass
class DjangoSoapApp(SimpleWSGISoapApp):
def authenticate(self, request):
ws_username = getattr(settings, 'WS_USERNAME', None)
if ws_username:
ws_password = getattr(settings, 'WS_PASSWORD', None)
username, password = extract_basic_credentials(request)
if username == None:
raise Http401("401 Authentication required.")
if username != ws_username or password != ws_password:
raise Http403("403 Not authorized")
def __call__(self, request):
self.authenticate(request)
django_resp = HttpResponse()
def start_response(status, headers):
status, reason = status.split(' ', 1)
django_resp.status_code = int(status)
for header, value in headers:
django_resp[header] = value
response = super(SimpleWSGISoapApp, self).__call__(request.META, start_response)
if django_resp.status_code == 405:
return HttpResponse("405 Method not allowed.", 'text/plain', status=405)
esme tame kad as nesuprantu kaip paleist ta servisa kad jis suktusi kaip pvz kituose pavyzdziuose yra kazkas tokio server_forever ir uztenka paspaust ant sukurto failo ir pasileidzia servisas. tiesa dirbu ant win
#!/usr/bin/env python
import sys, calendar
#Import the SOAP.py machinery
import SOAPpy
CAL_NS = "http://uche.ogbuji.net/eg/ws/simple-cal"
class Calendar:
def getMonth(self, year, month):
return calendar.month(year, month)
server = SOAPpy.SOAPServer(("192.168.0.101", 8888))
cal = Calendar()
server.registerObject(cal, CAL_NS)
print "Starting server..."
server.serve_forever()
Sveiki, iškilo problemėlė, reikia atlikti šiokį tokį darbelį ir reiktų man pakurti web servisa su Python. Serviso esmė, kad iš saito. php (arba vb) užklausomis, kreiptis i servisą ir gauti ko reikia, tada gautus duomenis toliau naudot php pagalba tarkim. googlinau nieko padoraus nerandu kaip ta servisą iškviesti su php ar VB, su pythonu pagal pavyzdzius tai suprantu kas kaip, tik kad ten pasileidžia http://localhost:8080 tarkim tai kaip prieit prie tokio neturiu supratimo. Gal kas ką nors panašaus darę ar susidūrę, būčiau labai dėkingas. gal būt yra koks geresnis serviso kūrimo būdas aš dariau su ZSI pagalba, pradedantysis esu ant Python tai nesmerkit be to sedžiu ant win tai irgi nesmerkit
Vadink dalykus tikraisiais jų vardais. Kaip supratau, kalėdamas apie kažkokius servisus, kalbi apie SOAP?
Siūlyčiau naudoti soaplib:
http://github.com/jkp/soaplib/blob/mast ... loworld.py
sveiki dar karteli, sirex dekui už atsakyma aš kažko tokio ir ieškojau, bet ten man pavyzdys tas kazko tais klaida generuoja, nors wsdl lyg ir gera sukuria su soapUI bent jau nerodo kad blogas butų.
saite: http://www.pychef.com/2009/10/creating- ... in-django/
radau lyg tiksliai ko man reikėtų tik va kadangi pradedantysis ant python čia tokių klausimų iškilo gal kas galėsit padėt.
pagal aprašymą susikūriau urls.py :
susikūriau views.py:
taip pat yra ir soap.py kataloge:
esme tame kad as nesuprantu kaip paleist ta servisa kad jis suktusi kaip pvz kituose pavyzdziuose yra kazkas tokio server_forever ir uztenka paspaust ant sukurto failo ir pasileidzia servisas. tiesa dirbu ant win
Tema perkelta iš https://legacy.ubuntu.lt/forum/viewtopic.php?f=11&t=5404