2017-06-16 73 views
0

我有2個python文件。這是第一個:從另一個文件輸入

class Downloader(): 

    def __init__(self): 

     baseURL = 'https://example.com' 

    def getDownloadLink(self):    

     #linkBase = input("Text: ") 

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

其次Python文件:

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() 

它給我的錯誤:

NameError: name 'linkBase' is not defined 

是否有可能從第一文件linkBase在第二連接linkBase檔案?

+0

聲明'在'getDownloadLink全球linkBase' '方法 – Dalvenjia

+2

始終將完整跟蹤與異常消息一起發回。就你而言,你應該將'linkBase'作爲參數傳遞給'getDownloadLink'。 – FamousJameous

+0

@Dalvenjia此方法不起作用。同樣的錯誤。 – jestembotem

回答

1

這裏的問題是,你試圖訪問一個不存在的變量在你的getDownloadLink函數的範圍內。

一個解決辦法是增加linkBase作爲參數:

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

然後修改您的路線將值發送給該函數:

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

謝謝!它正在工作! – jestembotem

0

修改代碼以傳遞值作爲參數:

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') 

第二個文件:

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() 
相關問題