将python输出显示到网站

时间:2017-02-09 20:18:30

标签: python html

我可以在Powershell中打印输出,但我希望文本显示在网站上,而不是在Powershell上。

这是我的index.html:

<!DOCTYPE html>
<html>
<head>
  <title>Fluxus Generator</title>
</head>

<body bgColor="peachpuff">
  <center><h1>Fluxus Generator</h1><center>

    <center><img src="card.png" alt="Card" /></center>
    <font face= "Calibri" size="7" color = "purple">

  <center><p><a href="/">Another Card</a></p></center>
</body>
</html>

这里是app.py :(我将app.py与main.py联合起来,因为单独没有用)

from bs4 import BeautifulSoup
import requests
import random

from flask import Flask
from flask import render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

def generate_word():
    """Generate a list of words and shuffle them"""
    words = list()

    req = requests.get('https://en.wikipedia.org/wiki/List_of_plain_English_words_and_phrases')
    html_source = req.text
    soup = BeautifulSoup(html_source, "html.parser")

    for source in soup.find_all('a', { "class" : "extiw" }):
        word = source.find(text = True)
        try:
            word = str(word)
            words.append(word)
        except:
            pass

    random.shuffle(words)
    return words


def generate_instruction(words):
    """Build an instruction from the word lists"""
    instruction_struct = [
        'I', words[0], words[1], words[8], 'the',
        words[2], words[5], 'with',
        words[4], words[7]
    ]

    instruction = ' '.join(instruction_struct)
    print instruction


words = generate_word()
generate_instruction(words)

if __name__ == '__main__':
    app.run()

我已经尝试过cgi,web但是没有成功。 我应该如何更改代码,以便在网站上获取文本? 我应该添加到index.html吗?

1 个答案:

答案 0 :(得分:0)

BeautifulSoup是一个错误的工具。它用于解析页面,你需要的是一个反向的页面创建。

您需要的是模板引擎,例如Jinja2(大型)或Tempita(小型)。

使用它,您可以创建一个HTML 模板,一个具有正常结构和一些占位符的文档,然后通过用数据替换占位符来渲染

(Flask是一个不错的选择。对于更少的依赖项,请尝试web.py。)