SlideShare a Scribd company logo
1 of 20
Download to read offline

Flask Basics
Eueung Mulyana
http://eueung.github.io/python/flask-basics
Python CodeLabs | Attribution-ShareAlike CC BY-SA
1 / 20
 Flask Basics
2 / 20
<ul>
{%forrowinrows%}
<li>{{row}}</li>
{%endfor%}
</ul>
templates/rows.jinja2.html
fromflaskimportFlask,render_template
app=Flask("app")
app.debug=True
deftop_articles():
return[
{"title":"Google","link":"http://google.com","date"
{"title":"Yahoo", "link":"http://yahoo.com","date"
]
@app.route('/')
defindex():
articles=top_articles()
returnrender_template("rows.jinja2.html",
rows=articles)
PORT=4001
app.run(host="0.0.0.0",port=PORT,use_reloader=False)
Example #1
 
3 / 20
Example #2
 
Notes:
If you enable debug support the server will reload itself
on code changes, and it will also provide you with a
helpful debugger if things go wrong
The route() decorator
Default Port 5000
fromflaskimportFlask
app=Flask(__name__)
#---------------------------------------------
@app.route('/')
defindex():
return'IndexPage'
@app.route('/hello')
defhello():
return'HelloWorld'
#---------------------------------------------
if__name__=='__main__':
#app.run()
app.run(host='0.0.0.0')
#app.debug=True
#app.run(debug=True)
hello.py
4 / 20
Example #3
Notes:
Variable rules
Unique URLs / redirection behaviours: trailing / vs. none
@app.route('/user/<username>')
defshow_user_profile(username):
#showtheuserprofileforthatuser
return'User%s'%username
@app.route('/post/<int:post_id>')
defshow_post(post_id):
#showthepostwiththegivenid,theidisaninteger
return'Post%d'%post_id
@app.route('/projects/')
defprojects():
return'Theprojectpage'
@app.route('/about')
defabout():
return'Theaboutpage'
Runningonhttp://0.0.0.0:5000/(PressCTRL+Ctoquit)
127.0.0.1--[22/Nov/201517:22:01]"GET/userHTTP/1.1"404
127.0.0.1--[22/Nov/201517:22:24]"GET/user/otongHTTP/1.1
127.0.0.1--[22/Nov/201517:26:11]"GET/postHTTP/1.1"404
127.0.0.1--[22/Nov/201517:26:23]"GET/post/2HTTP/1.1"
127.0.0.1--[22/Nov/201517:26:59]"GET/post/otongHTTP/1.1
127.0.0.1--[22/Nov/201517:27:52]"GET/projectsHTTP/1.1"
127.0.0.1--[22/Nov/201517:27:52]"GET/projects/HTTP/1.1"
127.0.0.1--[22/Nov/201517:28:30]"GET/projects/HTTP/1.1"
127.0.0.1--[22/Nov/201517:29:01]"GET/aboutHTTP/1.1"
127.0.0.1--[22/Nov/201517:29:05]"GET/about/HTTP/1.1"
5 / 20
Example #4
URL Building
...
Static Files
url_for('static',filename='style.css')
#static/style.css
fromflaskimportFlask,url_for
app=Flask(__name__)
@app.route('/')
defindex():pass
@app.route('/login')
deflogin():pass
@app.route('/user/<username>')
defprofile(username):pass
withapp.test_request_context():
printurl_for('index')
printurl_for('login')
printurl_for('login',next='/')
printurl_for('profile',username='JohnDoe')
$pythonapp.py
/
/login
/login?next=%2F
/user/John%20Doe
6 / 20
fromflaskimportFlask,request
app=Flask(__name__)
#---------------------------------------------
defdo_the_login():
return'DoLogin'
defshow_the_login_form():
return'ShowForm'
#---------------------------------------------
@app.route('/login',methods=['GET','POST'])
deflogin():
ifrequest.method=='POST':
returndo_the_login()
else:
returnshow_the_login_form()
#---------------------------------------------
if__name__=='__main__':
app.run(host='0.0.0.0',debug=True)
*Runningonhttp://0.0.0.0:5000/(PressCTRL+Ctoquit)
*Restartingwithstat
127.0.0.1--[22/Nov/201518:47:02]"GET/loginHTTP/1.1"
127.0.0.1--[22/Nov/201518:49:45]"POST/loginHTTP/1.1"
Example #5
HTTP Methods
 
7 / 20
Example #6
127.0.0.1--[23/Nov/201502:47:00]"GET/helloHTTP/1.1"
127.0.0.1--[23/Nov/201502:47:00]"GET/hello/HTTP/1.1"
127.0.0.1--[23/Nov/201502:49:03]"GET/hello/OtongHTTP/1.1"
fromflaskimportFlask,render_template
app=Flask(__name__)
#---------------------------------------------
@app.route('/hello/')
@app.route('/hello/<name>')
defhello(name=None):
returnrender_template('hello.html',name=name)
#---------------------------------------------
if__name__=='__main__':
app.run(host='0.0.0.0',debug=True)
<!doctypehtml>
<title>HellofromFlask</title>
{%ifname%}
<h1>Hello{{name}}!</h1>
{%else%}
<h1>HelloWorld!</h1>
{%endif%}
hello.html
8 / 20
fromflaskimportFlask,Markup
#---------------------------------------------
printMarkup('<strong>Hello%s!</strong>')%'<blink>hacker</blink>'
print"---"
printMarkup.escape('<blink>hacker</blink>')
print"---"
printMarkup('<em>Markedup</em>»HTML').striptags()
Example #7
Markup
9 / 20
References
Flask
Flask (A Python Microframework)
Flask Documentation
Flask @github
10 / 20
 Flaskr Microblog
11 / 20
Flaskr
Files & Folders
flaskr.py
initdb_flaskr.py
schema.sql
templates/layout.html
templates/login.html
templates/show_entries.html
static/style.css
schema.sql
droptableifexistsentries;
createtableentries(
idintegerprimarykeyautoincrement,
titletextnotnull,
'text'textnotnull
);
initdb_flaskr.py
sqlite3flaskr.db<schema.sql
importsqlite3
fromflaskimportFlask
fromcontextlibimportclosing
#---------------------------------------------
DATABASE='flaskr.db'
#---------------------------------------------
app=Flask(__name__)
app.config.from_object(__name__)
#---------------------------------------------
defconnect_db():
returnsqlite3.connect(app.config['DATABASE'])
#---------------------------------------------
definit_db():
withclosing(connect_db())asdb:
withapp.open_resource('schema.sql',mode='r')asf:
db.cursor().executescript(f.read())
db.commit()
#---------------------------------------------
init_db()
12 / 20
layout.html
<!doctypehtml>
<title>Flaskr</title>
<linkrel="stylesheet"type="text/css"href="{{url_for('static',filename='style.css')}}"
<divclass="page">
<h1>Flaskr</h1>
<divclass="metanav">
{%ifnotsession.logged_in%}
<ahref="{{url_for('login')}}">login</a>
{%else%}
<ahref="{{url_for('logout')}}">logout</a>
{%endif%}
</div>
{%formessageinget_flashed_messages()%}
<divclass="flash">{{message}}</div>
{%endfor%}
{%blockbody%}{%endblock%}
</div>
flaskr.py
 
13 / 20
importos
fromsqlite3importdbapi2assqlite3
fromflaskimportFlask,request,session,g,redirect,url_for,abort,render_template,flash
#---------------------------------------------
app=Flask(__name__)
#---------------------------------------------
#Loaddefaultconfigandoverrideconfigfromanenvironmentvariable
app.config.update(dict(
DATABASE=os.path.join(app.root_path,'flaskr.db'),
DEBUG=True,
SECRET_KEY='developmentkey',
USERNAME='admin',
PASSWORD='default'
))
app.config.from_envvar('FLASKR_SETTINGS',silent=True)
#---------------------------------------------
defconnect_db():
rv=sqlite3.connect(app.config['DATABASE'])
rv.row_factory=sqlite3.Row
returnrv
#---------------------------------------------
defget_db():
ifnothasattr(g,'sqlite_db'):
g.sqlite_db=connect_db()
returng.sqlite_db
#---------------------------------------------
@app.teardown_appcontext
defclose_db(error):
ifhasattr(g,'sqlite_db'):
g.sqlite_db.close()
flaskr.py
 
14 / 20
flaskr.py
@app.route('/')
defshow_entries():
db=get_db()
cur=db.execute('selecttitle,textfromentriesorderbyiddesc'
entries=cur.fetchall()
returnrender_template('show_entries.html',entries=entries)
#---------------------------------------------
@app.route('/add',methods=['POST'])
defadd_entry():
ifnotsession.get('logged_in'):
abort(401)
db=get_db()
db.execute('insertintoentries(title,text)values(?,?)'
[request.form['title'],request.form['text']])
db.commit()
flash('Newentrywassuccessfullyposted')
returnredirect(url_for('show_entries'))
show_entries.html
{%extends"layout.html"%}
{%blockbody%}
{%ifsession.logged_in%}
<formaction="{{url_for('add_entry')}}"method="post"
<dl>
<dt>Title:
<dd><inputtype="text"size="30"name="title">
<dt>Text:
<dd><tagtextareaname="text"rows="5"cols="40"></tagt
<dd><inputtype="submit"value="Share">
</dl>
</form>
{%endif%}
<ulclass="entries">
{%forentryinentries%}
<li><h2>{{entry.title}}</h2>{{entry.text|safe}}
{%else%}
<li><em>Unbelievable. Noentriesheresofar</em>
{%endfor%}
</ul>
{%endblock%}
15 / 20
flaskr.py
@app.route('/login',methods=['GET','POST'])
deflogin():
error=None
ifrequest.method=='POST':
ifrequest.form['username']!=app.config['USERNAME'
error='Invalidusername'
elifrequest.form['password']!=app.config['PASSWORD'
error='Invalidpassword'
else:
session['logged_in']=True
flash('Youwereloggedin')
returnredirect(url_for('show_entries'))
returnrender_template('login.html',error=error)
#---------------------------------------------
@app.route('/logout')
deflogout():
session.pop('logged_in',None)
flash('Youwereloggedout')
returnredirect(url_for('show_entries'))
#---------------------------------------------
if__name__=='__main__':
app.run()
login.html
{%extends"layout.html"%}
{%blockbody%}
<h2>Login</h2>
{%iferror%}<pclass="error"><strong>Error:</strong>{{er
<formaction="{{url_for('login')}}"method="post">
<dl>
<dt>Username:
<dd><inputtype="text"name="username">
<dt>Password:
<dd><inputtype="password"name="password">
<dd><inputtype="submit"value="Login">
</dl>
</form>
{%endblock%}
16 / 20
test_flaskr.py
py.testtest_flaskr.py
py.testwill run all files in the current directory and its
subdirectories of the form test_*.pyor *_test.py
importpytest
importos
importflaskr
importtempfile
#---------------------------------------------
@pytest.fixture
defclient(request):
db_fd,flaskr.app.config['DATABASE']=tempfile.mkstemp()
flaskr.app.config['TESTING']=True
client=flaskr.app.test_client()
withflaskr.app.app_context():
flaskr.init_db()
defteardown():
os.close(db_fd)
os.unlink(flaskr.app.config['DATABASE'])
request.addfinalizer(teardown)
returnclient
#---------------------------------------------
deflogin(client,username,password):
returnclient.post('/login',data=dict(
username=username,
password=password
),follow_redirects=True)
#---------------------------------------------
deflogout(client):
returnclient.get('/logout',follow_redirects=True)
17 / 20
deftest_empty_db(client):
"""Startwithablankdatabase."""
rv=client.get('/')
assertb'Noentriesheresofar'inrv.data
#---------------------------------------------
deftest_login_logout(client):
"""Makesureloginandlogoutworks"""
rv=login(client,flaskr.app.config['USERNAME'],flaskr.app.config[
assertb'Youwereloggedin'inrv.data
rv=logout(client)
assertb'Youwereloggedout'inrv.data
rv=login(client,flaskr.app.config['USERNAME']+'x',flaskr.app.config[
assertb'Invalidusername'inrv.data
rv=login(client,flaskr.app.config['USERNAME'],flaskr.app.config[
assertb'Invalidpassword'inrv.data
#---------------------------------------------
deftest_messages(client):
"""Testthatmessageswork"""
login(client,flaskr.app.config['USERNAME'],flaskr.app.config[
rv=client.post('/add',data=dict(
title='<Hello>',
text='<strong>HTML</strong>allowedhere'
),follow_redirects=True)
assertb'Noentriesheresofar'notinrv.data
assertb'<Hello>'inrv.data
assertb'<strong>HTML</strong>allowedhere'inrv.data
test_flaskr.py
18 / 20
References
Tutorial - Flask Documentation (0.10)
Flaskr @github
Testing Flask Applications
pytest - Getting Started
19 / 20

END
Eueung Mulyana
http://eueung.github.io/python/flask-basics
Python CodeLabs | Attribution-ShareAlike CC BY-SA
20 / 20

More Related Content

What's hot (20)

Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and Django
 
ES6 presentation
ES6 presentationES6 presentation
ES6 presentation
 
Spring Core
Spring CoreSpring Core
Spring Core
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for Beginners
 
Spring boot
Spring bootSpring boot
Spring boot
 
JavaScript - Chapter 4 - Types and Statements
 JavaScript - Chapter 4 - Types and Statements JavaScript - Chapter 4 - Types and Statements
JavaScript - Chapter 4 - Types and Statements
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Tomcat Server
Tomcat ServerTomcat Server
Tomcat Server
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
 
React JS
React JSReact JS
React JS
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
flask.pptx
flask.pptxflask.pptx
flask.pptx
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling Resolution
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
 
Hibernate tutorial
Hibernate tutorialHibernate tutorial
Hibernate tutorial
 
JavaScript - Chapter 11 - Events
 JavaScript - Chapter 11 - Events  JavaScript - Chapter 11 - Events
JavaScript - Chapter 11 - Events
 

Similar to Flask Basics

Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"Fwdays
 
Diseño y Desarrollo de APIs
Diseño y Desarrollo de APIsDiseño y Desarrollo de APIs
Diseño y Desarrollo de APIsRaúl Neis
 
Flask patterns
Flask patternsFlask patterns
Flask patternsit-people
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsFrancois Zaninotto
 
OpenTox API introductory presentation
OpenTox API introductory presentationOpenTox API introductory presentation
OpenTox API introductory presentationPantelis Sopasakis
 
What The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIsWhat The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIsBruno Rocha
 
Flask & Flask-restx
Flask & Flask-restxFlask & Flask-restx
Flask & Flask-restxammaraslam18
 
LvivPy - Flask in details
LvivPy - Flask in detailsLvivPy - Flask in details
LvivPy - Flask in detailsMax Klymyshyn
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Lar21
 
The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010Fabien Potencier
 
XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話Takehito Tanabe
 
Flask-RESTPlusで便利なREST API開発 | Productive RESTful API development with Flask-...
Flask-RESTPlusで便利なREST API開発 | Productive RESTful API development with Flask-...Flask-RESTPlusで便利なREST API開発 | Productive RESTful API development with Flask-...
Flask-RESTPlusで便利なREST API開発 | Productive RESTful API development with Flask-...Akira Tsuruda
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to DjangoJoaquim Rocha
 
Orlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't SuckOrlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't Suckerockendude
 
Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Hugo Hamon
 
Pemrograman Python untuk Pemula
Pemrograman Python untuk PemulaPemrograman Python untuk Pemula
Pemrograman Python untuk PemulaOon Arfiandwi
 
NetPonto - The Future Of C# - NetConf Edition
NetPonto - The Future Of C# - NetConf EditionNetPonto - The Future Of C# - NetConf Edition
NetPonto - The Future Of C# - NetConf EditionPaulo Morgado
 
React & The Art of Managing Complexity
React &  The Art of Managing ComplexityReact &  The Art of Managing Complexity
React & The Art of Managing ComplexityRyan Anklam
 

Similar to Flask Basics (20)

Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"
 
Diseño y Desarrollo de APIs
Diseño y Desarrollo de APIsDiseño y Desarrollo de APIs
Diseño y Desarrollo de APIs
 
Flask patterns
Flask patternsFlask patterns
Flask patterns
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node js
 
OpenTox API introductory presentation
OpenTox API introductory presentationOpenTox API introductory presentation
OpenTox API introductory presentation
 
What The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIsWhat The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIs
 
Flask & Flask-restx
Flask & Flask-restxFlask & Flask-restx
Flask & Flask-restx
 
Soap Component
Soap ComponentSoap Component
Soap Component
 
LvivPy - Flask in details
LvivPy - Flask in detailsLvivPy - Flask in details
LvivPy - Flask in details
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
 
The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010
 
XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話
 
Flask-RESTPlusで便利なREST API開発 | Productive RESTful API development with Flask-...
Flask-RESTPlusで便利なREST API開発 | Productive RESTful API development with Flask-...Flask-RESTPlusで便利なREST API開発 | Productive RESTful API development with Flask-...
Flask-RESTPlusで便利なREST API開発 | Productive RESTful API development with Flask-...
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
Orlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't SuckOrlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't Suck
 
Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2
 
Pemrograman Python untuk Pemula
Pemrograman Python untuk PemulaPemrograman Python untuk Pemula
Pemrograman Python untuk Pemula
 
NetPonto - The Future Of C# - NetConf Edition
NetPonto - The Future Of C# - NetConf EditionNetPonto - The Future Of C# - NetConf Edition
NetPonto - The Future Of C# - NetConf Edition
 
How to use soap component
How to use soap componentHow to use soap component
How to use soap component
 
React & The Art of Managing Complexity
React &  The Art of Managing ComplexityReact &  The Art of Managing Complexity
React & The Art of Managing Complexity
 

More from Eueung Mulyana

Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem PerspectiveHyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem PerspectiveEueung Mulyana
 
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated WorldIndustry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated WorldEueung Mulyana
 
Blockchain Introduction
Blockchain IntroductionBlockchain Introduction
Blockchain IntroductionEueung Mulyana
 
Bringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based ApproachBringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based ApproachEueung Mulyana
 
FinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency IntroductionFinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency IntroductionEueung Mulyana
 
Open Source Networking Overview
Open Source Networking OverviewOpen Source Networking Overview
Open Source Networking OverviewEueung Mulyana
 
ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments Eueung Mulyana
 
Open stack pike-devstack-tutorial
Open stack pike-devstack-tutorialOpen stack pike-devstack-tutorial
Open stack pike-devstack-tutorialEueung Mulyana
 
ONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionEueung Mulyana
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionOpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionEueung Mulyana
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming BasicsEueung Mulyana
 
Cloud Computing: Overview and Examples
Cloud Computing: Overview and ExamplesCloud Computing: Overview and Examples
Cloud Computing: Overview and ExamplesEueung Mulyana
 
selected input/output - sensors and actuators
selected input/output - sensors and actuatorsselected input/output - sensors and actuators
selected input/output - sensors and actuatorsEueung Mulyana
 
Connected Things, IoT and 5G
Connected Things, IoT and 5GConnected Things, IoT and 5G
Connected Things, IoT and 5GEueung Mulyana
 
Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+Eueung Mulyana
 
NodeMCU with Blynk and Firebase
NodeMCU with Blynk and FirebaseNodeMCU with Blynk and Firebase
NodeMCU with Blynk and FirebaseEueung Mulyana
 
Trends and Enablers - Connected Services and Cloud Computing
Trends and Enablers  - Connected Services and Cloud ComputingTrends and Enablers  - Connected Services and Cloud Computing
Trends and Enablers - Connected Services and Cloud ComputingEueung Mulyana
 

More from Eueung Mulyana (20)

FGD Big Data
FGD Big DataFGD Big Data
FGD Big Data
 
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem PerspectiveHyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
 
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated WorldIndustry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
 
Blockchain Introduction
Blockchain IntroductionBlockchain Introduction
Blockchain Introduction
 
Bringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based ApproachBringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based Approach
 
FinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency IntroductionFinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency Introduction
 
Open Source Networking Overview
Open Source Networking OverviewOpen Source Networking Overview
Open Source Networking Overview
 
ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments
 
Open stack pike-devstack-tutorial
Open stack pike-devstack-tutorialOpen stack pike-devstack-tutorial
Open stack pike-devstack-tutorial
 
Basic onos-tutorial
Basic onos-tutorialBasic onos-tutorial
Basic onos-tutorial
 
ONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionONOS SDN Controller - Introduction
ONOS SDN Controller - Introduction
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionOpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - Introduction
 
Mininet Basics
Mininet BasicsMininet Basics
Mininet Basics
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming Basics
 
Cloud Computing: Overview and Examples
Cloud Computing: Overview and ExamplesCloud Computing: Overview and Examples
Cloud Computing: Overview and Examples
 
selected input/output - sensors and actuators
selected input/output - sensors and actuatorsselected input/output - sensors and actuators
selected input/output - sensors and actuators
 
Connected Things, IoT and 5G
Connected Things, IoT and 5GConnected Things, IoT and 5G
Connected Things, IoT and 5G
 
Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+
 
NodeMCU with Blynk and Firebase
NodeMCU with Blynk and FirebaseNodeMCU with Blynk and Firebase
NodeMCU with Blynk and Firebase
 
Trends and Enablers - Connected Services and Cloud Computing
Trends and Enablers  - Connected Services and Cloud ComputingTrends and Enablers  - Connected Services and Cloud Computing
Trends and Enablers - Connected Services and Cloud Computing
 

Recently uploaded

Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Personfurqan222004
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 

Recently uploaded (20)

Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Person
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 

Flask Basics