Flask: Difference between revisions

2,027 bytes added ,  5 years ago
(Created page with "Installation: pip3 install flask Hello World: <syntaxhighlight lang="python"> from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'He...")
 
 
(10 intermediate revisions by the same user not shown)
Line 1:
[[Category:Scripting]]
__TOC__
<br />
 
= Basics =
Source: [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world blog.miguelgrinberg.com]
 
Installation:
pip3 install flask
 
== Hello World: ==
<syntaxhighlight lang="python">
from flask import Flask
Line 14 ⟶ 21:
app.run()
</syntaxhighlight>
 
*Access the above app from:
http://127.0.0.1:5000/
 
== Parameters ==
 
*All parameters are optional:
app.run(host, port, debug, options)
 
Explanation:
host: Hostname to listen on. Defaults to 127.0.0.1 (localhost). Set to ‘0.0.0.0’ to have server available externally
port: Defaults to 5000
debug: Defaults to false. If set to true, provides a debug information
options: To be forwarded to underlying Werkzeug server.
 
*Enable Debugging:
app.debug = True
 
*Access URL over network with custom port:
app.run(host = '0.0.0.0',port=5005)
 
= Uploader Project =
Source: [https://www.tutorialspoint.com/flask/flask_file_uploading.htm tutorialspoint.com]
 
nano upload_test.py
 
<syntaxhighlight lang="python">
from flask import Flask, render_template, request
from werkzeug import secure_filename
app = Flask(__name__)
 
@app.route('/upload')
def upload_file():
return render_template('upload.html')
@app.route('/uploader', methods = ['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['file']
f.save(secure_filename(f.filename))
return 'file uploaded successfully'
if __name__ == '__main__':
app.run(debug = True, host = '0.0.0.0')
</syntaxhighlight>
 
mkdir templates && cd templates
nano upload.html
 
<syntaxhighlight lang="html">
<html>
<body>
<form action = "http://10.10.10.1:5000/uploader" method = "POST"
enctype = "multipart/form-data">
<input type = "file" name = "file" />
<input type = "submit"/>
</form>
</body>
</html>
</syntaxhighlight>
 
File Structure:
.
├── templates
│ └── upload.html
└── upload_test.py
 
Run the application:
python3 upload_test.py
 
Access the application on below URL:
http://10.10.10.1:5000/upload
 
 
<br />
;References
<references/>
<br />
<br />
<br />
 
 
{{DISQUS}}