![]() |
|
unable to call function in Flask - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Web Scraping & Web Development (https://python-forum.io/forum-13.html) +--- Thread: unable to call function in Flask (/thread-190.html) |
unable to call function in Flask - verb - Sep-28-2016 Hello everyone i am trying to call function from another function but unfortunately it doesn't work here is my code... The app starts and it doesn't ask for dir name as i was expecting from flask import Flask,render_template
from os import listdir
from os.path import join,isfile
app = Flask(__name__)
def ask_for_dir():
dirpath=raw_input("please provide dirname for gallery")
spisak={}
for i in listdir(dirpath):
pat=join(dirpath,i)
if isfile(pat) and pat.endswith("jpg") or pat.endswith("jpeg"):
spisak[i]=pat
else:
continue
return spisak
@app.route('/')
def hello_world():
spisak=ask_for_dir()
lensp=len(spisak)
return render_template("gal2.html",lensp=lensp,spisak=spisak)
if __name__ == '__main__':
app.run(debug=True)
RE: unable to call function in Flask - nilamo - Sep-28-2016 Where were you expecting it to ask you something? In the console? In your browser? RE: unable to call function in Flask - snippsat - Sep-28-2016 As mention by nilamo, this should probably by used in browser and not from console. As a example. index.html <form action="dir_name" method="POST"> Please provide dirname for gallery: <input type="text" name="gallery" value=""> <input type="submit" value="Submit"> </form> app.py from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def template():
return render_template('index.html')
@app.route('/dir_name', methods=['POST'])
def ask_for_dir():
dirpath = request.form['gallery']
return(dirpath)
if __name__ == '__main__':
app.run(debug=True)You have to think of this in a different way it's when working with web.Here is raw_input() replaced with html input. Getting value from html form then in ask_for_dir() use request.form[] Then you can work further with dirpath value in the function. RE: unable to call function in Flask - verb - Sep-29-2016 so there is no way to ask the user in console and pass this value to flask ?? I want to do it this way because when i start the app i will pass the dir where the app will browse,also it's more friendly if i ask for dir not passing arguments to the app RE: unable to call function in Flask - verb - Sep-29-2016 i have found the solution of my problem here is the code from flask import Flask,render_template
from os import listdir
from os.path import join,isfile
app = Flask(__name__)
def ask_for_dir():
spisak={}
for i in listdir(app.dirpath):
pat=join(app.dirpath,i)
if isfile(pat) and pat.endswith("jpg") or pat.endswith("jpeg"):
spisak[i]=pat
else:
continue
return spisak
@app.route('/')
def hello_world():
spisak=ask_for_dir()
lensp=len(spisak)
return render_template("gal2.html",lensp=lensp,spisak=spisak)
if __name__ == '__main__':
app.dirpath=raw_input("please provide dirname for gallery")
app.run(debug=True) so i moved the input function just before starting the app loop ::) anyway thanks to everyone who tried to help me
RE: unable to call function in Flask - nilamo - Sep-29-2016 Why are you building a webapp if you want to interact via the console? I think you should probably make it a config value, or make it a command line argument, that way if you restart the server you don't have to type anything at all. |