Flask / Python - Как я могу запустить этот python скрипт в Flask и отобразить результат на html странице - PullRequest
0 голосов
/ 29 мая 2020

Я пишу этот код, чтобы получить некоторые значения курсов акций, и как я могу отобразить выходные результаты в результатах. html страница? Я использую Heroku для создания этого приложения.

Пожалуйста, помогите мне с этим приложением. Это основной файл для вызова других файлов.

Пожалуйста, сообщите мне, если нужны дополнительные сведения для запуска этого приложения.

Вот коды, которые я сделал, чтобы отобразить результат в поле зрения. 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) 

Спасибо за внимание.

Ответы [ 3 ]

0 голосов
/ 30 мая 2020

Вот несколько примеров, которым вы должны следовать:

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. Механизм создания шаблонов, который обычно используется с flask, называется Jinja. После того, как вы сделаете запрос к своим данным, вы захотите передать их своим маршрутам через jinja.

Вот пример c:

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)
0 голосов
/ 30 мая 2020

Я решил проблему! Вот решение, которое я нашел:

Сначала вы можете посетить приложение здесь: 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()

индекс. 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
0 голосов
/ 29 мая 2020

Я надеюсь, что смогу быть полезным, но я мало знаю о Python. Но похоже, что если вы выполняете рендеринг страницы html на стороне сервера, вам просто нужен механизм шаблонов, такой как Jade, Pug или что-то в этом роде.

...