Code ici.Python twisted putChild pas de transmission prévue
from twisted.web.static import File
from twisted.web.server import Site
from twisted.web.resource import Resource
from twisted.internet import ssl, reactor
from twisted.python.modules import getModule
import secure_aes
import urllib.parse
import cgi
import json
import os
import hashlib
import coserver
import base64
import sim
if not os.path.exists(os.path.join(os.getcwd(),'images')):
os.mkdir(os.path.join(os.getcwd(),'images'))
with open ('form.html','r') as f:
fillout_form = f.read()
with open ('image.html','r') as f:
image_output = f.read()
port = 80#int(os.environ.get('PORT', 17995))
class FormPage(Resource):
#isLeaf = True
def getChild(self, name, request):
print('GC')
if name == '':
return self
return Resource.getChild(self, name, request)
def render_GET(self, request):
print(request)
#do stuff and return stuff
root = FormPage()
root.putChild('rcs', File("./images"))
#factory = Site(FormPage())
factory = Site(root)
reactor.listenTCP(port, factory)
reactor.run()
Comme vous pouvez le voir, je l'ai fait root.putChild
vers la fin des choses, attendant que quand je suis arrivé http://site/rcs
je suis donné une liste de répertoires du contenu de ./images
mais bien sûr, cela ne se produit pas. Qu'est-ce que je rate? J'ai essayé beaucoup de choses suggérées de here. En outre, this one ne fonctionne pas car cela ne sert que des fichiers statiques. Il va à getChild tout le temps indépendamment du fait que si ont spécifié putChild ou non.
Je ne peux pas reproduire le problème. J'ai supprimé un tas de trucs superflus mais j'ai laissé le noyau intact - et il sert une liste de répertoires pour moi. –
Quelle version de Twisted, Python, quel OS, etc. –
Python 3.5, Windows 10. Pas de venv. – Luke