[解決済み]:以下の編集をお読みください。フラスコ内のURLのリダイレクト
URL短縮機能を構築しようとしていますが、ユーザーを長いURLにリダイレクトするときにエラーが発生しています。私はデータベース用にSQLiteを使用しました。 はここに私のリダイレクトコードです:
@app.route('/<short_url>')
def redirect(short_url):
conn = sqlite3.connect('url.db')
cursor = conn.cursor()
result_cur = cursor.execute("SELECT URL FROM WEB_URL WHERE S_URL = ?;" ,(short_url,))
try:
redirect_url = result_cur.fetchone()[0]
print redirect_url
conn.close()
return redirect(redirect_url , code = 200)
except Exception as e:
error = e
return render_template('index.html' , error = error)
fetchone()[0]
が正しい長いURLを返しますが、私はこのエラーを取得しています生成された短いURLをクリックすることでん
'NoneType' object has no attribute '__getitem__'
はNoneError
理由があるべきではありません私はdbから価値を得ています。
ここではプロジェクトのgithubのリンクがあります:
https://github.com/PadamSethia/shorty
EDIT:
NOTE
は、それは愚かな間違いだった、が判明します。どのような組み込み関数の関数とも同じ名前をつけないでください。
しかし、このエラーは、 'fetchone()'の結果が実際に 'None'であることを暗示しているようです。あなたは結果をチェックしましたか? – Leonard2
エラー行番号 –
@ Leonard2のトレースバックを確認してください。はい、長いURLから長いURLを取得しています。 –