Olá,
Há muitas formas de colocar HTML numa variável no web2py, agora a melhor depende do contexto e objetivo.
Dois exemplos mais comuns:
- Usando código HTML direto e puro (convém ter noções mínimas de segurança, é o meu método preferido). No entanto por segurança (e ainda bem pois é perigoso de outra forma) o web2py filtra tudo o que passa para o client, fazendo escape a algumas coisas, o que quebra o código HTML, por exemplo <b>hello</b> é convertido para <b>hello</b> se computado num bloco Python no web2py. Para desligar esse filtro e passar código que não queremos que seja filtrado, a forma é usar a função XML(), por exemplo numa variável:
var = XML("<b>hello</b>")
Para que o código HTML dessa variável seja exibido na página, basta colocar dentro de uma view/página html: {{=var}} Também é possível correr diretamente pelo XML usando {{=XML("<b>hello</b>")}} As chavetas indicam que estamos a correr Python dentro de um ficheiro HTML, o sinal de igual é um atalho que indica para fazer print/colocar na página HTML o resultado computado. Se tentar fazer por exemplo {{="<b>hello</b>"}} sem o XML() diretamente, vai resultar nas tags < > convertidas para entities por segurança. Com o XML() é possível escrever também javascript direto.
Desta forma o código HTML passará sempre normalmente numa variável.
PS: num caso de um formulário, para o código não ficar apenas numa linha, o melhor talvez fosse usar algo do género com 3 aspas:
var = XML("""<form>
<p>
Texto
</p>
</form>""")
Em teoria desta forma o código não seria todo exibido/escrito numa única linha, pois as 3 aspas respeitam os parágrafos numa string. Mas não me recordo se isto funciona com a função XML() e agora não posso testar, é apenas em teoria, se der erro ignore.
- Outra forma é usando os helpers do web2py, que são uma espécie de funções Python conversoras para tags HTML que podem ser manipuladas. Um exemplo usando o mesmo HTML do exemplo anterior:
var = B("hello")
Fazendo {{=var}} vai resultar no mesmo acima. No caso de um formulário seria mais complexo, seriam helpers dentro de helpers, por exemplo:
var = FORM(P("Texto))
Para colocar na página: {{=var}}
Para abrir a partir do dropbox há muitas formas. Em teoria basta guardar como ficheiro de texto txt, por xemplo, e usar o comando open() ou algo do género do Python para abrir/ler o ficheiro e usar o que lá está (o web2py ainda não usa Python 3+, por isso cuidado com encodings, palavras acentuadas podem dar problema se não tratadas correctamente no código).
Não tenho a certeza se percebi bem a questão, do que entendi ficam estas ideias básicas. Quando comecei há uns anos nesta aventura Python também me ajudaram e foram pacientes comigo, por isso espero que seja útil.
Abraço