Gå til innhold

Anbefalte innlegg

Hei,

 

Har eit ganske lett spørsmål egentlig. Fungerer python på webservere på samme måte som php? For å spør litt meir spesifikt kan eg lage eit program med Django og så laste det opp på webserveren på same måte som ei php fil og gå til domene.no/test.py?

 

Er 110% grøn på python men har ein god del erfaring med php. Etter å ha sett korleis django fungerer (spesielt autogenerering av admin sidene) så har eg bestemt meg får å prøve litt python :)

 

Runar

 

Edit: Og der fant eg dokumentasjons sida til django. Problem løst :)

Endret av Shadows0
Lenke til kommentar
Videoannonse
Annonse

modpython.org!

 

Fordeler med python fremfor PHP:

Python er enklere og mer oversiktelig

Mulighet for persistant og Fast CGI

Tilgang til apache API (gjennom mod_python)

Mange flere moduler

 

Fordeler med PHP:

Laget for WWW

Lettere POST, GET, COOKIE

Raskere til små script

 

Her er et script som jeg har laget mens jeg prøvde meg på Python og XML-RPC FastCGI. Støtter POST, GET og COOKIE til serveren. Krever mod_python.

 

frontend.py:

Klikk for å se/fjerne innholdet nedenfor

import xmlrpclib

from mod_python import apache, util, Cookie

 

def handleCookies(req, cookies):

for x in cookies:

Cookie.add_cookie(req, x, cookies[x][0], expires=cookies[x][1], domain=cookies[x][2], path=cookies[x][3])

def handler(req):

"""

Read all values before we request at the backend, save this per-request task to this script

"""

form = util.FieldStorage(req).list

vars = {}

for field in form:

vars[field.name] = field.value

cookies = Cookie.get_cookies(req)

 

cooki = {}

oo = ""

for cookie in cookies:

oo += "Cookie named: %s, value %s :: " % (cookie, cookies[cookie].value)

cooki[cookie] = cookies[cookie].value

 

arti = xmlrpclib.Server("http://localhost:51250")

 

"Setup everything"

output = arti.main(vars, cooki)

 

"Setup new cookies"

handleCookies(req, output["acookies"])

 

"give header info"

req.content_type = output["content_type"]

 

"set content"

req.write(output["content"])

req.write(oo)

 

return apache.OK

 

backend.py

Klikk for å se/fjerne innholdet nedenfor

from SimpleXMLRPCServer import *

import time

HOST = "localhost"

PORT = 51250

class artiRequest:

def main(self, values, cookies):

self.re = {}

self.values = values

self.cookies = cookies

self.re["acookies"] = {}

self.re["content"] = ""

return arti.request(self)

def cookie(self, name, value=1, expireT=0, domain="", path=""):

if not expireT:

expireT = arti.expireT

expires = time.time() + expireT

if not domain:

domain = arti.domain

if not path:

path = arti.path

 

self.re["acookies"][name] = [value, expires, domain, path]

def write(self, content):

self.re["content"] += content

 

class artiGlobal:

def __init__(self):

self.domain = ""

self.path = ""

self.expireT = 14400

def request(self, req):

req.re["content_type"] = "text/html"

req.write("Hello world\n\n")

if not req.cookies.has_key("ECHOC"):

req.cookie("ECHOC", "ECHOV")

 

 

return req.re

 

global arti

arti = artiGlobal()

server = SimpleXMLRPCServer((HOST, PORT))

server.register_instance(artiRequest())

print "Arti backend started, Listen on ", HOST, ":", PORT

server.serve_forever()

 

.htaccess:

Klikk for å se/fjerne innholdet nedenfor

SetHandler mod_python

PythonDebug On

PythonHandler frontend

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...