编程语言
首页 > 编程语言> > 如何将python脚本与HTML文件连接?

如何将python脚本与HTML文件连接?

作者:互联网

基本上,我从网页上获取一些数据,并将其放入一个数组中,我想将该数组的内容输出到HTML文件中的表中.经过一些研究,我发现使用mako模板可能是最好的解决方案,但是我不知道如何使用它?谁能指导我完成这些步骤,或者提供更好的解决方案来执行此python脚本并将其结果输出到网络上?

import urllib2
import mako
from bs4 import BeautifulSoup as BS

html = urllib2.urlopen("<link-to-web-page>")
soup = BS(html)
data = []


for each_course in soup.findAll('li',{'class':'<class-name>'}):
    inner_text = each_course.text
    data.append(inner_text)


for i in data:
    print (i+"\n")

解决方法:

您的问题有两个子问题:

>生成HTML以显示您的数据
>提供HTML

Mako可以为您提供第一个帮助.对于第二种解决方案,可以根据您的情况提供不同的解决方案.

产生HTML

首先,您必须确定一个模板,即要在其上填充数据的一般骨架上.如果您只想显示数据而没有任何进一步的信息,谜题答案将起作用,但是如果它变得更复杂,则可以有用作为mako的东西.通用模板的外观如何?这是一个非常简单的示例:

<html>
<body>
Hello world!
</body>
</html>

这并没有太大作用.就像一个字符串一样.因此,让其中包含一些python:

<html>
<body>
${x}
</body>
</html>

该模板包含一个变量,您需要提供:

template = Template(filename="yourtemplate.template") # or how ever you named your template
print(template.render(x="Hello World!")

您至少需要循环:

% for a in [1,2,3]
${a}
% endfor

这是循环的基本语法.当然,您可以做更复杂的事情.想象一下,mylist是一个具有名称和年龄的Person实例列表:

% for person in mylist
Name: ${person.name}
Age: ${person.age}
% endfor

您可以在其中使用任意HTML.当然mako可以做更强大的事情,但是一个stackoverflow帖子占用的空间很小.您可以阅读mako语言的basic usage和/或Syntax页面以获取mor信息.但是使用此处介绍的结构,您应该可以完成任务.

提供HTML

您仍然需要以某种方式将HTML引入网络或任何您想要的地方.您有多种选择,取决于您的需求:

静态或动态

>您的数据是静态的吗?这意味着您的数据会在近期内变化吗?如果没有,那么您可以简单地在本地计算机上生成HTML,然后将html推送到提供html的简单网络服务器.
>您的数据动态吗?这意味着您的数据经常更改,因此打开本地计算机电源,运行脚本然后推送HTML是不合理的.相反,您必须告诉服务网页的服务器在数据更改时运行脚本.这样做的可能性不止一种,您可以使用CGI(诸如nginx或apache之类的Web服务器调用您的python脚本并提供输出)或诸如djangoflask之类的wsgi框架或其他.当然,还需要通过“典型”网络服务器(例如apache或nginx或gunicorn等)来提供这些服务

Lan或WWW?

>如果只需要它在局域网中可用,则只需在本地计算机上运行Web服务器.如果您不希望有太多的流量和安全性,可以使用http server in the python standard library.
>如果需要在网络上可用它,则需要查找网络服务器.有一些免费服务可降低流量.仅举几例:heroku着重于python,因此适用于动态用例. Github pages,您可以从github存储库直接提供HTML.我认为它只能提供静态HTML.

标签:mako,html5,dom,html,python
来源: https://codeday.me/bug/20191120/2044150.html