Tornado / Python self.render (“example.html”) ignora CSS

Soy novato en Python y en progtwigción en general. Utilizo un servidor web llamado Tornado para “alojar” mis sitios web. Siempre que uso self.render (“example.html”, variables aquí ) para generar una página html dinámica, la página html producida no tiene CSS incorporado, ya que solo genera la página html sin que CSS mejore su apariencia aunque He colocado mi archivo .css junto con la página example.html en la misma carpeta “Tornado / template”. Bastante seguro de que tengo ese enlace html a css tag también.

Si abro example.html con el navegador y no con Tornado, se “renderizará” con el archivo .css.

Como no sé por qué sucede esto, solo publicaré todo mi código aquí: Esta es la app.py en Tornado:

import config import os.path import re import MySQLdb import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.render("question3.html") class StopTornado(tornado.web.RequestHandler): def get(self): tornado.ioloop.IOLoop.instance().stop() class ReturnQuery(tornado.web.RequestHandler): def post(self): connection = MySQLdb.connect(**config.mysql_config) cursor = connection.cursor() if 'lowermass' in self.request.arguments and 'uppermass' in self.request.arguments: lowermass = self.get_argument('lowermass') uppermass = self.get_argument('uppermass') # Testing for bad input and should block Injection attacks # Since you can't really do an injection attack with only numbers # Placing any non-int input will throw an exception and kick you to the Error.html page try: lowermass = int(lowermass) uppermass = int(uppermass) except ValueError: self.render("Error.html") if lowermass < uppermass: cursor.execute ('''SET @row_num=0;''') cursor.execute('''SELECT @row_num:=@row_num+1 as 'Num', b.commonname FROM Bird b JOIN Bodymass m ON b.EOLid = m.EOLid WHERE m.mass BETWEEN %s AND %s GROUP BY b.commonname''',(lowermass, uppermass)) birds = cursor.fetchall() self.render("question2.html", birds = birds) else: self.render("Error.html") else : self.render("Error.html") class Application(tornado.web.Application): def __init__(self): handlers = [ (r"/", MainHandler), # Add more paths here (r"/KillTornado/", StopTornado), (r"/tables/", ReturnQuery), (r"/tables/localhost8888", MainHandler) ] settings = { "debug": True, "template_path": os.path.join(config.base_dir, "templates"), "static_path": os.path.join(config.base_dir, "static") } tornado.web.Application.__init__(self, handlers, **settings) if __name__ == "__main__": app = Application() app.listen(config.port) print "Starting tornado server on port %d" % (config.port) tornado.ioloop.IOLoop.instance().start() 

Y esta es la página html que estoy tratando de mostrar:

Básicamente, recibo dos entradas de enteros de una página html diferente de un usuario web y se realiza una consulta mysql la app.py anterior en una base de datos. Devuelve una lista (creo que es una lista de listas) de todos los resultados y uso los datos para completar una tabla en la página html a continuación, pero es la página html que contiene la tabla que no se “renderiza” con css .

lowermass y uppermass son las entradas del usuario (deben ser int). question3.html es la página html para obtener la entrada del usuario y question2.html es la página html con la tabla.

Espero seriamente que sea un error tonto que pueda solucionar rápidamente.

       $(document).ready(function(){ $('#table').dataTable(); });  Birds with body mass in range  
{% if birds %} {% for bird in birds %} {% end %} {% else %} {% end %}
rownum common name
{{ bird[0] }} {{ bird[1] }}
No results returned

simplemente genera la página html sin que CSS mejore su apariencia, aunque he colocado mi archivo .css junto con la página example.html en la misma carpeta “Tornado / template”. Bastante seguro de que tengo ese enlace html a css tag también.

El css pertenece a la carpeta estática, que ha declarado aquí:

 "static_path": os.path.join(config.base_dir, "static") 

Así es como se enlaza en la plantilla: