2017-06-16 3 views
0

Ich habe 2 Python-Dateien. Dies ist die erste:Eingabe von einer anderen Datei

class Downloader(): 

    def __init__(self): 

     baseURL = 'https://example.com' 

    def getDownloadLink(self):    

     #linkBase = input("Text: ") 

     responseBase = requests.get(linkBase).content 
     soupBase = BeautifulSoup(responseBase, 'lxml') 

Und zweite Python-Datei:

from flask import Flask 
from flask import request 
from flask import render_template 
from firstFile import Downloader 

app = Flask(__name__) 

@app.route('/') 
def my_form(): 
    return render_template("form.html") 

@app.route('/', methods=['POST']) 
def my_form_post(): 

    linkBase = request.form['text'] 
    #processed_text = text.upper() 

    return Downloader().getDownloadLink() 

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

Es gibt mir Fehler:

NameError: name 'linkBase' is not defined 

Ist es möglich, linkBase aus der ersten Datei mit linkBase in Sekunden verbinden Datei ?

+0

erklären 'global linkBase' im' getDownloadLink 'method – Dalvenjia

+2

Veröffentlichen Sie immer die vollständige Ablaufverfolgung zusammen mit einer Ausnahmebedingungsnachricht. In Ihrem Fall sollten Sie jedoch 'linkBase' an 'getDownloadLink' als Argument übergeben. – FamousJameous

+0

@Dalvenjia Diese Methode funktioniert nicht. Derselbe Fehler. – jestembotem

Antwort

1

Das Problem hierbei ist, dass Sie eine Variable zugreifen möchten, die nicht vorhanden ist im Rahmen Ihrer getDownloadLink Funktion.

Eine Lösung wäre linkBase als Argument hinzuzufügen:

def getDownloadLink(self, linkBase): 
    responseBase = requests.get(linkBase).content 
    soupBase = BeautifulSoup(responseBase, 'lxml') 

Und dann ändern Sie Ihre Route den Wert an die Funktion zu senden:

@app.route('/', methods=['POST']) 
def my_form_post(): 
    linkBase = request.form['text'] 
    return Downloader().getDownloadLink(linkBase) 
+0

Danke! Es funktioniert! – jestembotem

0

Ändern Sie den Code, den Wert als Argument übergeben:

class Downloader(): 

    def __init__(self): 

     baseURL = 'https://example.com' 

    def getDownloadLink(self, linkBase):    

     #linkBase = input("Text: ") 

     responseBase = requests.get(linkBase).content 
     soupBase = BeautifulSoup(responseBase, 'lxml') 

Zweite Datei:

from flask import Flask 
from flask import request 
from flask import render_template 
from firstFile import Downloader 

app = Flask(__name__) 

@app.route('/') 
def my_form(): 
    return render_template("form.html") 

@app.route('/', methods=['POST']) 
def my_form_post(): 

    linkBase = request.form['text'] 
    #processed_text = text.upper() 

    return Downloader().getDownloadLink(linkBase) 

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