如何从另一个.py文件运行.py文件

时间:2020-10-17 16:33:53

标签: python html file streamlit

我从Python开始,而我在一个项目上工作时发现了这个问题:

我有2个.py文件。一个具有登录名,另一个具有使用Streamlit库构建的图表。 问题是,我希望用户登录后将其重定向到图表。我没有找到对此问题的任何响应,或者我只是听不到它。

我认为我要做的是将Streamlit Graph文件包装为一个函数,但是我不知道如何。

感谢任何阅读此书的人。

登录文件:

from flask import Flask, render_template, redirect, url_for,request, session
from flask_mysql_connector import MySQL
import pymysql
from templates.home import get_input

app = Flask(__name__)

app.secret_key = "120395"

app.config["MYSQL_HOST"] = "localhost"
app.config["MYSQL_USER"] = "root"
app.config["MYSQL_PASSWORD"] = "anto1203"
app.config["MYSQL_DB"] = "amsterdamdb"

db = MySQL(app)


@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        if ('email_usuario_form' in request.form) and ('password_usuario_form' in request.form):
            usuarios_email_py = request.form['email_usuario_form']
            usuarios_password_py = request.form['password_usuario_form']
            cursor = db.connection.cursor(pymysql.cursors.DictCursor)
            cursor.execute("SELECT USUARIOS_EMAIL, USUARIOS_LOGIN_PASSWORD FROM amsterdamdb.usuarios WHERE "
                           "USUARIOS_EMAIL=%s AND USUARIOS_LOGIN_PASSWORD=%s", (usuarios_email_py,
                                                                                usuarios_password_py))
            info = cursor.fetchone()
            print(info)
            if info is None:
                return "Usuario y contraseña incorrectos"
            else:
                if info[0] == usuarios_email_py and info[1] == usuarios_password_py:
                    session['loginsuccess'] = True
                    return redirect(url_for("home"))


    return render_template("login.html")


@app.route('/registro')
def registro():
    return render_template("register.html")


@app.route('/home')
def home():
    if session['loginsuccess'] == True:
        return get_input()


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

精简图形文件

import streamlit as st
import pandas as pd
from PIL import Image
from datetime import datetime, timedelta
import json
import requests
import altair as alt

st.write("""
# Bienvenido a Ámsterdam
**Mostrando información del mercado de acciones**
""")

st.sidebar.header('Ingrese parámetros')

def get_input():
    aux_datetime = datetime.now()
    today_date = aux_datetime.date()
    treinta_dias_date = today_date - timedelta(days=30)

    get_fecha_desde = st.sidebar.text_input("Fecha Inicial", treinta_dias_date )
    get_fecha_hasta = st.sidebar.text_input("Fecha Final", today_date)
    get_nemotecnico = st.sidebar.text_input("Identificador", "goog" )
    return get_fecha_desde, get_fecha_hasta, get_nemotecnico



def get_data(nemotecnico_empresa, fecha_desde, fecha_hasta):
    nemotecnico = nemotecnico_empresa

from_input_fecha_desde,from_input_fecha_hasta,from_input_nemotecnico = get_input()

fecha_desde = datetime.strptime(from_input_fecha_desde, '%Y-%m-%d')
fecha_hasta = datetime.strptime(from_input_fecha_hasta, '%Y-%m-%d')
nemotecnico = from_input_nemotecnico.upper()

fecha_desde_tmsp = str(round(datetime.timestamp(fecha_desde)))

fecha_hasta_tmsp = str(round(datetime.timestamp(fecha_hasta)))


if nemotecnico=="":
    r = requests.get(
        'https://finnhub.io/api/v1/stock/candle?symbol=&resolution=1&from=0&to=0&token=btagn3v48v6vivh8p9n0')
    accionesJson = r.json()
else:
    r = requests.get(
    'https://finnhub.io/api/v1/stock/candle?symbol=' + nemotecnico + '&resolution=D&from=' + fecha_desde_tmsp + '&to=' + fecha_hasta_tmsp + '&token=wathever')
    accionesJson = r.json()

open_values = accionesJson["o"]
close_values = accionesJson["c"]
fecha_values = accionesJson["t"]
fecha_values_size = len(fecha_values)
fecha_values_int = []
fecha_values_datetime = []

for x in range(0, fecha_values_size):
    fecha_values_int.append(int(fecha_values[x]))

for i in range(0, fecha_values_size):
    valor_aux = datetime.fromtimestamp((fecha_values_int[i]))
    fecha_values_datetime.append(valor_aux.strftime("%m/%d/%Y"))

data_ordenada = {'Apertura': open_values,
                 'Cierre': close_values,
                 'Fecha': fecha_values_datetime}


chart_data = pd.DataFrame(data_ordenada)

source = chart_data

alt_chart = alt.Chart(source).transform_fold(
    ['Apertura', 'Cierre']
).mark_line().encode(
    x=alt.X('Fecha:O',axis=alt.Axis(title="Fechas")),
    y=alt.Y('value:Q',scale=alt.Scale(zero=False), axis=alt.Axis(title="Valor")),
    tooltip=['Fecha', 'Apertura', 'Cierre'],
    color='key:N'
).interactive().properties(
    width=800,
    height=500
)
st.write("", "", alt_chart)

st.header('Puntos de interés')
st.write(source.describe())

print(accionesJson)

0 个答案:

没有答案
相关问题