Flask/Python - 如何在 Flask 中 运行 这个 python 脚本并在 html 页面中呈现输出

Flask/Python - How can I run this python script in Flask and render output in html page

我正在编写这段代码来获取一些股票价格值,如何在 results.html 页面中呈现输出结果? 我正在使用 Heroku 制作这个应用程序。

请帮助我使用这个应用程序。 这是调用其他文件的主要文件。

如果需要 运行 这个应用程序的更多详细信息,请告诉我。

这是我编写的代码,用于在 view.html 页面中显示输出。 x.py

print('----EURO DO REMESSA ONLINE-----')
import melhor
print('-----COTAÇÃO DOLARHOJE.COM-----')
import cota
print('-----INDICADOR EURO COMERCIAL H1----')
import indicator
print('-----INVESTING VALOR EURO COM-----')
import invest
print( '-------------\n', 'Conhece a ti mesmo. (Tales de Mileto)', '\n-------------')

melhor.py

import requests
from bs4 import BeautifulSoup as bs
import time
import re
from Color import *
url = 'https://www.remessaonline.com.br/cotacao/cotacao-euro'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
page = requests.get(url, headers=headers)
page
page.status_code
page.text
soup = bs(page.text, 'html.parser')
resumo = soup.find_all('div', class_="style__Text-sc-27fg4f-2 ddwOcG")[0].get_text('')
mult = float(re.sub('[^0-9.]', "", resumo.replace(",",".")))
print('Euro COMERCIAL: R$', Base.BOLD, ANSI_Compatible.Color(120), mult, ANSI_Compatible.END, Base.END)
eur_rate = 1.035145
eur_ra = str(mult * eur_rate)[:6]
print('Euro TURISMO: R$', Base.BOLD, eur_ra, Base.END)
current = time.strftime("%Y / dia:%d mês:%m horário:%H:%M:%S")
print(current)
with open('remessa.txt', 'a') as f:
    f.writelines('Valor euro turismo:' + 'R$' + eur_ra + ' ' + 'Data:' + current + '\n')

cota.py

import requests
import time

response = requests.get('http://dolarhoje.com/cotacao.txt')
data = response.text
print('1 USD comercial =',"R$",data )

response = requests.get('http://dolarhoje.com/dolar-turismo/cotacao.txt')
data = response.text
print('1 USD turismo =',"R$",data )

response = requests.get('http://dolarhoje.com/euro/cotacao.txt')
data2 = response.text
print('1 EUR comercial =',"R$",data2 )

response = requests.get('http://dolarhoje.com/euro-turismo/cotacao.txt')
data2 = response.text
print('1 EUR turismo =',"R$",data2 )

response = requests.get('http://dolarhoje.com/bitcoin-hoje/cotacao.txt')
data3 = response.text
print('1 BTC =',"R$",data3 )


current = time.strftime("ano:%Y dia:%d mês:%m horário:%H:%M:%S")
with open('cota.txt', 'a') as f:
    f.writelines('Valor euro turismo:' + 'R$' + data2 + ' ' + 'Data:' + current + '\n')

indicator.py

import requests
from bs4 import BeautifulSoup as bs


url = 'https://br.investing.com/currencies/eur-brl-technical'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
page = requests.get(url, headers=headers)
page
page.status_code
page.text
soup = bs(page.text, 'html.parser')
resumo = soup.find_all(id='techStudiesInnerWrap')[0].get_text(' ')
print(resumo) 

invest.py

import requests
from bs4 import BeautifulSoup as bs


url = 'https://br.investing.com/currencies/eur-brl-technical'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
page = requests.get(url, headers=headers)
page
page.status_code
page.text
soup = bs(page.text, 'html.parser')
resumo = soup.find_all('div', class_="top bold inlineblock")[0].get_text(' ')
print(resumo) 

感谢您的关注。

希望对大家有所帮助,本人了解不多Python。但听起来如果您要对 html 页面进行服务器端呈现,您只需要一个模板引擎,例如 Jade、Pug 或类似的东西。

这里有一些例子供您参考:

https://www.grizzlypeaksoftware.com/articles?id=1m3W3llyJLy4YS5OpyyxBq

https://scotch.io/tutorials/getting-started-with-flask-a-python-microframework

https://scoutapm.com/blog/python-flask-tutorial-getting-started-with-flask

https://www.liquidweb.com/kb/getting-started-with-flask/

https://github.com/akibrhast/flask_base_template

基本上你需要了解的是如何创建后端服务器。在这种情况下使用烧瓶。通常与 Flask 一起使用的模板引擎称为 Jinja。一旦您对数据发出请求调用,您就会希望通过 jinja 将其传递到您的路线。

这是一个基本示例:

from flask import Flask, flash, redirect, render_template, request, session, abort,url_for
import os

#from flask_login import login_user, current_user, logout_user, login_required #Optional login imports, need to 'pip install flask_login'

app = Flask(__name__)

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

if __name__ == '__main__':
    app.secret_key = os.urandom(12)
    app.run(debug=True)

我解决了问题!这是我找到的解决方案:

首先,您可以在这里访问该应用程序:finance-python.herokuapp.com

app.py

from flask import Flask
from functools import wraps
import sqlite3
import requests
import bs4
import requests_html
from flask import render_template
import subprocess
import re
import flask
from bs4 import BeautifulSoup as bs
import time

app = flask.Flask(__name__)

@app.route("/", methods=['GET', 'POST'])
def index():
    url = 'https://www.remessaonline.com.br/cotacao/cotacao-euro'
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
    page = requests.get(url, headers=headers)
    page
    page.status_code
    page.text
    soup = bs(page.text, 'html.parser')
    resumo = soup.find_all('div', class_="style__Text-sc-27fg4f-2 ddwOcG")[0].get_text('')
    mult = float(re.sub('[^0-9.]', "", resumo.replace(",",".")))
    euro_comercial_rem = print('Euro COMERCIAL: R$', mult)
    eur_rate = 1.035145
    eur_ra = str(mult * eur_rate)[:6]
    euro_turismo_rem = print('Euro TURISMO: R$', eur_ra)
    current = time.strftime("%Y / dia:%d mês:%m horário:%H:%M:%S")
    print(current)

    response = requests.get('http://dolarhoje.com/cotacao.txt')
    data = response.text
    dolar_com_dolar_hoje = print('1 USD comercial =',"R$",data )
    response = requests.get('http://dolarhoje.com/dolar-turismo/cotacao.txt')
    dataa = response.text
    dolar_tur_dolar_hoje = print('1 USD turismo =',"R$",dataa )

    response = requests.get('http://dolarhoje.com/euro/cotacao.txt')
    data2 = response.text
    euro_com_dolar_hoje = print('1 EUR comercial =',"R$",data2 )
    response = requests.get('http://dolarhoje.com/euro-turismo/cotacao.txt')
    dataa2 = response.text
    euro_tur_dolar_hoje = print('1 EUR turismo =',"R$",dataa2 )

    response = requests.get('http://dolarhoje.com/bitcoin-hoje/cotacao.txt')
    data3 = response.text
    btc_dolar_hoje = print('1 BTC =',"R$",data3 )


    current = time.strftime("ano:%Y dia:%d mês:%m horário:%H:%M:%S")

    url = 'https://br.investing.com/currencies/eur-brl-technical'
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
    page = requests.get(url, headers=headers)
    page
    page.status_code
    page.text
    soup = bs(page.text, 'html.parser')
    resumoo = soup.find_all(id='techStudiesInnerWrap')[0].get_text(' ')
    resumo_inves = print(resumoo)

    url = 'https://br.investing.com/currencies/eur-brl-technical'
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
    page = requests.get(url, headers=headers)
    page
    page.status_code
    page.text
    soup = bs(page.text, 'html.parser')
    resumooo = soup.find_all('div', class_="top bold inlineblock")[0].get_text(' ')
    resumo_invest_eur_brl = print(resumooo)
    #resumos = 'eur_ra' + 'euro_turismo_rem' + 'dolar_com_dolar_hoje' + 'dolar_tur_dolar_hoje' + 'btc_dolar_hoje' + 'resumo_inves' + 'euro_com_dolar_hoje' + 'euro_tur_dolar_hoje'

    return flask.render_template('index.html', mult=mult, eur_ra=eur_ra, current=current, data=data, dataa=dataa, data2=data2, dataa2=dataa2, data3=data3, resumoo=resumoo, resumooo=resumooo)

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

index.html进入模板文件夹

-----EURO DO REMESSA ONLINE----- <br>
EURO COMERCIAL : R$ {{ mult }} <br>
EURO TURISMO: R$ {{ eur_ra }} <br>
{{ current }} <br> <br>
----COTAÇÃO DOLARHOJE.COM----- <br>
1 USD comercial = R$ {{ data }} <br>
1 USD turismo = R$ {{ dataa }} <br>
1 EUR comercial = R$ {{ data2 }} <br>
1 EUR turismo = R$ {{ dataa2 }} <br>
1 BTC = R$ {{ data3 }} <br> <br>
-----INDICADOR EURO COMERCIAL H1----- <br>
{{ resumoo }} <br> <br>
-----VARIAÇÃO DO EURO-----<br>
{{ resumooo }} <br> <br>

Conhece a ti mesmo - Tales de Mileto