SlideShare a Scribd company logo
1 of 155
Python Programming
4-days	class
PaulYang
2016/04
Agenda	of	Python Programming
Day	1	- Basic	Python	
Day	2	- Advanced	Python
Day	3	- Web	Scraping	with	Python	
Day	4	- Web	application	with	python
Web	application	with	python
Python – Day4
PaulYang
2016/04
You	will	build	restaurant	menu	App
Final	Project
web	application/server	providing	temperature	log	and	control	GPIO	(R/W)
Courses	agenda – Day4		
1. Working	with	CRUD,	Database	and	ORM
2. Making	http	server		
3. Developing	Web	with	framework	– flask	
4. Access	GPIOs	in	Raspberry	PI	
5. Control	LCD	in	Raspberry	PI	
6. Project	– using	Flask	and	python	access	to	I/O	to	make	a	
simple	control	center	of	Raspberry	pi	via	web
Working	with	CRUD,	Database	and	ORM
(3-1)
CRUD	
Menu item
CRUD	
You	can	see	CRUD	everywhere	in	the	web	
READ
CREATE
UPDATE
DELETE
Quiz:	CRUD	Review
Quiz:	CRUD	Review
Quiz:	CRUD	Review
SQL	
The	language	to	communicate	with	database	
JDBC	API/driver	
• Pymssql
• Sqlite3
• ODBC	driver
Quiz:	CRUD	vs.	SQL
Quiz:	CRUD	vs.	SQL
Creating	database	and	ORM
Restaurant MenuItem
Creating	database	and	ORM
Creating	database	and	ORM
RAW	SQL	– create	2	tables	– restaurant/menu_item
Python has no way in helping me if typo
Creating	database	and	ORM
Why	not	treat	the	statement	as	the	objects	by	using	
Object	relationship	Mapping	(ORM)
SQLAlchemy
SQLAlchemy - Creating	a	Database
SQLAlchemy - Creating	a	Database
SQLAlchemy - Creating	a	Database
SQLAlchemy - Creating	a	Database	
A mapper code create the variables as we create
Each column of the table in the database when we create a column we need to pass in some attribute in it
SQLAlchemy - Creating	a	Database
Quiz	
Base = declarative_base()
Quiz	
Integer ; Employee
ORM	CRUD	– Create
Refer to CRUD.ipynb
ORM	CRUD	– Create
Exercise	- 1	
• Implement	a	db_setup.py	by	using	
configure/class/table/mapper	we	told	
previously	
1. Setup	a	new	database	called	
employee.db
2. Create	2	tables	– one	named	Employee
and	another	names	Address by	ORM
3. Create	the	column	with	the	proper	
datatype	and	its	foreign	key	
relationship	
4. Open	employee.db by	DB	Browser	for	
SQLite	http://sqlitebrowser.org/ to	
check	if	you	created	correctly
ORM	CRUD	– READ
Refer to CRUD.ipynb
ORM	CRUD	– READ
addmoremenus_second_version.py	to	populate	more	menu	item
ORM	CRUD	– READ
QUIZ
query ; employee
• Count()
• Filter() – 基本就是select
query的幾個常用function
query的幾個常用function
http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#querying
Exercise-2	
• Retrieve	what	“Urban	Burger”	and	‘Super	Stir	Fry‘	offer	– print	their	menu	
name	and	price		
• Run	addmoremenus_second_version.py	to	populate	more	menu	item
Exercise-2	
• Retrieve	the	offer	of	non-English	restaurant
• Retrieve	the	restaurants offering	‘French	Fries’with	price	
smaller	than	$3	and	each	dish’s	description	and	price
ORM	CRUD	– UPDATE	
Panda	Garden	wants	to	lower	the	price	of	its	Veggie	Burger for	ad
ORM	CRUD	– UPDATE
ORM	CRUD	– UPDATE
ORM	CRUD	– UPDATE	
By using DB browser
for SQLite
ORM	CRUD	– DELETE
Auntie Ann‘s Diner wants to remove Spinach Ice Cream
from its menu
CRUD:	DELETE
QUIZ
delete
Making	HTTP	server		
(3-2)
HTTP	server
HTTP	server
HTTP	server
HTTP	server
Building	a	Server	with	HTTPBaseServer
Building	a	Server	with	HTTPBaseServer
Building	a	Server	with	HTTPBaseServer
Exercise-3
Deal	with	Multiple	GET	request	
• Add	two	URLs
• /nihao (你好)
• /konnichiwa (こんにちは)
• Read	two	html	files	for	each	requests	
• html_jp.html	;	html_tw.html
• Test	by	your	browsers	or	the	codes	below
Adding	CRUD	to	Website
We	implement	that	by	the	framework
Developing	Web	with	framework	– flask	
(3-3)
Introducing	Frameworks	and	Flask
Frameworks is the collection of codes that allows you to focus on your tasks
There’re hundred of frameworks
Introducing	Frameworks	and	Flask
Typical	web	framework	will	contain	
the	these	elements
Introducing	Frameworks	and	Flask
You	can	use	the	cake	using	the	all	the	items	from	scratch– you	will	have	
better	understanding	about	How	to	make	cake	but	it	wastes	time	to	rebuild	
wheel
The	first	Flask
flask_server_1.py
The	first	Flask
QUIZ
What	happened	if	we	were	to	get	rid	of	@app.route(“/”)
QUIZ	– Answer
It	helps	on	URL	routing	– user	normally	use	/	root	instead	of	
index	for	homepage
Adding	Database	to	Flask
flask_server_2.py
Adding	Database	to	Flask
EXECRISE	-4
Modify	HelloWorld()	to	print	“大宅門”	餐廳 the	menu	item	
name,	price,	and	description
Routing	
Modern	website	will	offer	USER	nice	URLs	to	help	them	to	navigate	and	also	bookmark
Routing	
• Route	decorator	decides	the	URL	route	and	also	support	dynamic	URL	routing
Routing	
Dynamic routing
• Print	all	menu	items	based	on	restaurant	id	from	url
flask_server_3.py
Templates
• Creating	html	by	the	way	below	isn’t	fun
• Flask	has	its	template	engine	to	let	you	create	your	micro	template	for	your	html	snippet
Hard coding not
good
Syntax
Templates
Html	escaping	code:	In	html	where	you	can	execute	python	code
QUIZ
Guess	what	it	is	
{{x}}	?
{%	for	%}	?
{%	endfor %}	?
c
c
c
QUIZ
Since	we	can’t	use	indentation	to	tell	statement	
ends	– use	keyword	instead
Templates
Used	to	pass	in	the	argument	from	database	to	html	
escaping	code	to	perform	 - flask_server_4.PY
Templates
URL	building
It helps to build URL string with arguments to link to other pages
URL	building
It	helps	to	prevent	you	from	hard-wiring	codes	of	URL..	Be	
more	flexible	 - flask_server_5.PY	+	menu_2.html
Request	form	- POST		
Html	POST	form	in	the	template	code
flask_server_6.PY
Request	form		
Making	the	form	by	POST	to	create	a	new	restaurant	and	return	the	result	page	
c
c
c
Exercise-5
• Implement	a	html	page	for	Edit	Menu	Item	Form	to
Change	the	menuitem.name	
• Implement	a	html	page	for	Delete	page	to	remove	the	item
c
Styling
Styling	
Put	JS	and	CSS	code	into	/static	folder
Responding	to	JSON
In	many	cases,	we	only	need	DATA	– no	html	and	css
Responding	to	JSON
Responding	to	JSON
Database_setup.py
c
JSON	serial	result	passed
through	network
Responding	to	JSON
c
c
c
Exercise	6
Implement	the	new	routing	to	get	JSON	of	a	menu	
item	with	restaurant	id	and	menu	id	designated
Access	GPIOs	in	Raspberry	PI	
(3-4)
Raspberry	Pi
Raspberry	Pi
Raspberry	Pi
LCM	2835
GPIO
• Can	be	configured	to	be	input (read	HIGH/LOW	– 3.3v	or	0	v)	or	output	
• a	40-pin	header	marked	J8,	arranged	as	2x20	pins	All	the	GPIO	pins	can	be	reconfigured	to	provide	
alternate	functions,	UART,	SPI, PWM,	I²C	and	so	providing	a	total	of	17	GPIO	pins
http://elinux.org/RPi_Low-level_peripherals
https://pinout.xyz/pinout/pin22_gpio25
GPIO
http://elinux.org/RPi_Low-level_peripherals
Without	Rasp	Pi	I/O,	you	will	be	hard	to	wire	from	the	header
GPIO
GPIO
繼電器
Raspberry	Pi	B+板上的Pin:	11(GPIO17)
自激式DC	直流蜂鳴器
pin:32	(GPIO12)
Buttons鍵
SW01	Pin	16	(GPIO23)	
SW02	Pin	18	(GPIO24)
LED
LED01	Pin	13	(GPIO	27)
LED02	Pin	15	(GPIO	22)
PWM
Pin	12	(GPIO18)
IR
Pin:	22(GPIO25)
LCD
GPIO
RPi.GPIO
a	small	py library	that	take	some	of	the	complexity	out	of	driving	the	GPIO	pins
#1.Import GPIO module
import RPi.GPIO as GPIO
#2.Pin numbering
GPIO.setmode(GPIO.BOARD)
# or
GPIO.setmode(GPIO.BCM)
mode = GPIO.getmode()
#3.Setup up a channel
GPIO.setup(channel, GPIO.IN or GPIO.OUT)
# Multiple channel
chan_list = [11,12]
GPIO.setup(chan_list, GPIO.OUT)
#INPUT or OUTPUT
# END - cleanup
GPIO.cleanup()
$ wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.6.0.tar.gz
$ tar zxf RPi.GPIO-0.6.0.tar.gz
$ cd RPi.GPIO-0.6.0
$ sudo python setup.py install
GPIO	output
LED
LED01	Pin	13	(GPIO	27)
LED02	Pin	15	(GPIO	22)
GPIO	output
RaspberryPi HW	
Access	- GPIO.ipynb
GPIO	output
RaspberryPi HW	
Access	- GPIO.ipynb
Python Concurrency
Concurrency :
1) Doing more than one thing at a time.
Example :
1) A network server that communicates with several hundred clients
all connected at once
2) A big number crunching job that spreads its work across multiple
CPUs
Python Concurrency
It’s	known	as	multitasking	
If	only	one	CPU	is	available,	the	only	way	it	can	run	multiple	tasks	is	
by	rapidly	switching	between	them
Python Concurrency
CPU	Bound	Tasks	
Examples:
•	Crunching	big	matrices
•	Image	processing
I/O	Bound	Tasks
Examples:
•	Reading	input	from	the	user
•	Networking
•	File	processing
Python Concurrency
Shared Memory
Processes
Separate process
Fork, Pipes, FIFOs, memory mapped regions, etc
Python Concurrency
Threads
• An	independent	task	running	inside	a	program
• Shares	resources	with	the	main	program	(memory,	files,	network	
connections,	etc.)
• Has	its	own	independent	flow	of	execution(stack,	current	instruction,	etc.)
Python Concurrency
Python Concurrency
import time
import threading
class CountdownThread(threading.Thread):
def __init__(self,count):
threading.Thread.__init__(self)
self.count = count
def run(self):
while self.count > 0:
Print("Counting down", self.count)
self.count -= 1
time.sleep(5)
return
inherit from Thread
and redefine run()
This code executes
in the thread
First	way:	threads	are	defined	by	a	class
Python Concurrency
t1 = CountdownThread(10) # Create the thread object
t1.start() # Launch the thread
t2 = CountdownThread(20) # Create another thread
t2.start() # Launch
First	way:	threads	are	defined	by	a	class
Python Concurrency
def countdown(count):
while count > 0:
print "Counting down", count
count -= 1
time.sleep(5)
t1 = threading.Thread(target=countdown,args=(10,))
t1.start()
Second	way:	threads	are	defined	by	a	class
Python Concurrency
For	more	details,	Refer	to	https://pymotw.com/2/threading/
such	as	Thread	Synchronization/	shared	resource	access
GPIO	output
GPIO	output	(PWM)
Raspberry	Pi’s	GPIO	pins	are	all	digital	pins,	which	only	send	and	receive	high/low	
voltage.	if	you	want	the	“in-between”	value	like	0.6	(i.e.	dimming	the	light!)	you	need	
some	tricks,	either	use	an	analog	PWM	output,	or	simulate	it	with	software.
GPIO	output	(PWM)
https://sourceforge.net/p/raspberry-gpio-python/wiki/PWM/
Exercise-7
• Give	a	try	to	the	previous	code	
• Add	Adjust_brightness(value)	to	the	LED	class	
• Pass	in	0	~	10	to	control	the	brightness	of	LED	
by	using	ChangeDutyCycle()
• Add	blinking()	to	brighten/dim	your	LED	by		
ChangeDutyCycle()
GPIO	input	
Buttons鍵
SW01	Pin	16	(GPO23)	
SW02	Pin	18	(GPIO24)
GPIO	input	
GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# or
GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
The	RPi.GPIO module	allows	you	to	configure	the	Broadcom	SOC	to	do	this	
internally	in	software
GPIO	input
GPIO	input	
you	can	detect	edges	of	type	GPIO.RISING,	GPIO.FALLING	or	GPIO.BOTH.	The	
advantage	of	doing	it	this	way	is	that	it	uses	a	negligible	amount	of	CPU,	so	
there	is	plenty	left	for	other	tasks.
GPIO	input	
wait	for	up	to	5	seconds	for	a	rising	edge	(timeout	is	in	milliseconds)
GPIO.wait_for_edge(23, GPIO.RISING, timeout)
GPIO	input	
add_event_detect(23,	GPIO.RISING)
event_detected(23)
GPIO	input	
Callback	func performs	
when	rising	is	detected
GPIO	input
EXECRISE	– 8	
• Give	a	try	to	the	previous	code
Control	LCD	in	Raspberry	PI	
(3-6)
Qc1602a LCD
Connection between LCD/RPI
Connection	between	LCD/RPI	
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
LCD模組通常會提供兩種模式:4-bit 和 8-bit。
8-bit模式會使用8支接腳來傳輸在資料或指令,可以一個動作送出/讀
入完整的 8 個 bit(1 byte) 數據。
4-bit模式則只需要使用4支接腳來傳輸在資料或指令,但是一個動作
只能送出/讀入4個bit的數據,所以要送出/讀入完整的一個 byte 要多
花一個Cycle。
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
Connection	between	LCD/RPI
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
透過這些GPIO pin腳來對LCD下達命令 or寫入一個個的8bit(1 byte)資
料.
假設想要移動游標的位置到第一行第一格的位置
使用 set DDRAM address的命令 0x80 (轉換成二進位 0b 1000 0000 )
Connection	between	LCD/RPI
LCD	commands
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
Write	higher	4	bit	
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
0b1000	0000	(0x80)
0b0100	0000	(0x40)
0b0010	0000	(0x20)
0b0001	0000	(0x10)
Write	lower	4	bit	
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
Write	lower	4	bit	
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
0b0000	1000	(0x8)
0b0000	0100	(0x4)
0b0000	0010	(0x2)
0b0000	0001	(0x1)
Write	Data
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
• 指令"0x80"寫入之後,就會把游標移動到顯示螢幕
上第一行第一格的位置。
• 此時要在這個位置顯示ASCII字元"A",ASCII表中的16
進位值為0x41二進位為0b0100 0001),哪要怎麼寫入
"資料"?
Write	Data
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
Write	Data
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
Write	Data
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
write_data(0x41) # 或是write_data(ord('A'))
LCD	boot-up
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
上安裝LCD然後下指令就會發現...LCD還是沒反應...這並不表示前面講的有
問題,也不是LCD出問題。而是Datasheet通常不會一開始就說清
楚講明白的"開機“&"設定動作"動作。
這裡的主題是4bit,所以就不管8bit模式怎麼開機。而且4bit搞定之後,通常
也不會想用8bit模式了。還是跟據Datasheet表示,LCD接上電VDD電壓升到
4.4V之後要先等待15ms然後...
LCD	boot-up
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
LCD	boot-up
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
LCD	boot-up
http://blog.ittraining.com.tw/2014/12/raspberry-pi-b-python-lcd-16x2-hd44780.html
1. 在LCM模組上第一行和第二行顯示Hello	Python
Hint:運用 LCD	setup	codes	– check	LCD.ipynb
2.	在LCM模組上第一行奇數位址和第二行奇數位址
顯示”Hello”
hint:	use	0x80	+	col-1	and		0xc0	+	col-1	to	get	the	
pos in	first	and	second	line
Exercise	-9
Exercise	-9	
3.	實作
move_cursor(line,	col)
hint:		use	this	express:		(line-1)	*	0x40	+	0x80	+	(col-1)	to	get	the	position
print_line_1(msg) #參數為字串 在LCD第一行印出
print_line_2(msg) #參數為字串 在LCD第二行印出
clear_line_1	&	2程式 #將LCD第一二行清空 (just	fill	in	“	“)
4. 配合subprocess.check_output()	呼叫指令ifconfig 得到IP	位置,並將其
顯示在LCM模組之上。(hint:	use	decode().split()	to	separate	each	line	and	
look	for	"addr:“)
5.	將以上所用function改寫成class,	並讓開機時候將 hostname	與 ip顯示在
lcd上(hint:	$sudo nano /etc/rc.local and	add	python	script	before	exit()	)
Exercise	- 9
Project
use	flask	and	python	to	access	I/O	for	a	
simple	control	center
(3-6)
Final	Project
web	application/server	providing	temperature	log	and	control	GPIO	(R/W)
Environment	Setup
DHCP (IP)
assignment
SSH/VNC
Flask
Web Server
PORT:80
File Share
Samba
PAULRPI
PAULYANG
IPHONE
IP: 172.20.10.2 ~ 14
IP: 172.20.10.1
DIR	structure
Requirement	
1.		Create	a	portal	page	which	has	three	links	to	3	entries	-
/GPIO , /TEMP, /LCM
Requirement	
2.	GPIO	to	read	the	status	of	SW	button	and	turn	on/off	LED
/<changePin>/<action>
Requirement	
3.	Create	get_soc_temp.py	to	get	temp	by	using	subprocess and	
check_output function	
temp = subprocess.check_output("/opt/vc/bin/vcgencmd
measure_temp", shell=True)
And	write	into	sqlite database
Requirement	
3.	SOC	temp	log	to	retrieve	the	temperature	log	
from	different	time	range	– 1/2/5	day	
from	my_db.sqlite
Requirement	
4.	Use	LCD	class	you	created	to	implement	LCD	write	message	
in	webpage
Requirement	
5.	Test	the	codes	in	your	smartphone
Reference	
Raspberry Pi online resource
1) https://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/Raspberry-Pi-B-
Plus-V1.2-Schematics.pdf
2) http://www.geeetech.com/wiki/index.php/Raspberry_Pi_Model_B%2B
3) http://blog.ittraining.com.tw
4) https://www.pubnub.com/blog/2015-08-04-building-raspberry-pi-smart-house-part-2
5) http://elinux.org/RPi_Low-level_peripherals
6) http://www.thirdeyevis.com/pi-page-2.php
7) https://www.pubnub.com/blog/2015-08-04-building-raspberry-pi-smart-house-part-2/
8) https://sourceforge.net/p/raspberry-gpio-python/wiki/PWM/
9) https://www.adafruit.com/datasheets/TC1602A-01T.pdf
Udacity - Full-Stack-Foundations
1) www.udacity.com
Concurrency
1) http://www.dabeaz.com/usenix2009/concurrent/
2) https://pymotw.com/2/threading/
BACKUP

More Related Content

Similar to release_python_day4_slides_201606_1.pdf

DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and PythonDEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and PythonCisco DevNet
 
Web API Design 2013
Web API Design 2013Web API Design 2013
Web API Design 2013gidgreen
 
RESTful APIs and SBCs
RESTful APIs and SBCsRESTful APIs and SBCs
RESTful APIs and SBCsAlan Percy
 
Tech night ldn - chatbot
Tech night ldn - chatbotTech night ldn - chatbot
Tech night ldn - chatbotMarco Visintin
 
From ZERO to REST in an hour
From ZERO to REST in an hour From ZERO to REST in an hour
From ZERO to REST in an hour Cisco DevNet
 
Running PHP on Windows Technical Overview
Running PHP on Windows Technical OverviewRunning PHP on Windows Technical Overview
Running PHP on Windows Technical OverviewWes Yanaga
 
WP REST API - Building a simple Web Application
WP REST API - Building a simple Web ApplicationWP REST API - Building a simple Web Application
WP REST API - Building a simple Web ApplicationEdmund Chan
 
Chef for the Symfony developer
Chef for the Symfony developerChef for the Symfony developer
Chef for the Symfony developerCarlos Mafla
 
Consuming GRIN GLOBAL Webservices
Consuming GRIN GLOBAL WebservicesConsuming GRIN GLOBAL Webservices
Consuming GRIN GLOBAL WebservicesEdwin Rojas
 
Benefits of the CodeIgniter Framework
Benefits of the CodeIgniter FrameworkBenefits of the CodeIgniter Framework
Benefits of the CodeIgniter FrameworkToby Beresford
 
TDC São Paulo - Arquitetura .NET – Integrando a Autenticação do ASP.NET MVC e...
TDC São Paulo - Arquitetura .NET – Integrando a Autenticação do ASP.NET MVC e...TDC São Paulo - Arquitetura .NET – Integrando a Autenticação do ASP.NET MVC e...
TDC São Paulo - Arquitetura .NET – Integrando a Autenticação do ASP.NET MVC e...MAGomes
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial之宇 趙
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flaskJim Yeh
 
9780538745840 ppt ch09
9780538745840 ppt ch099780538745840 ppt ch09
9780538745840 ppt ch09Terry Yoast
 

Similar to release_python_day4_slides_201606_1.pdf (20)

DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and PythonDEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
DEVNET-1001 Coding 101: How to Call REST APIs from a REST Client and Python
 
Web API Design 2013
Web API Design 2013Web API Design 2013
Web API Design 2013
 
Crafting APIs
Crafting APIsCrafting APIs
Crafting APIs
 
RESTful APIs and SBCs
RESTful APIs and SBCsRESTful APIs and SBCs
RESTful APIs and SBCs
 
flask.pptx
flask.pptxflask.pptx
flask.pptx
 
Common Gateway Interface
Common Gateway InterfaceCommon Gateway Interface
Common Gateway Interface
 
Tech night ldn - chatbot
Tech night ldn - chatbotTech night ldn - chatbot
Tech night ldn - chatbot
 
From ZERO to REST in an hour
From ZERO to REST in an hour From ZERO to REST in an hour
From ZERO to REST in an hour
 
Running PHP on Windows Technical Overview
Running PHP on Windows Technical OverviewRunning PHP on Windows Technical Overview
Running PHP on Windows Technical Overview
 
WP REST API - Building a simple Web Application
WP REST API - Building a simple Web ApplicationWP REST API - Building a simple Web Application
WP REST API - Building a simple Web Application
 
Talking to Web Services
Talking to Web ServicesTalking to Web Services
Talking to Web Services
 
Chef for the Symfony developer
Chef for the Symfony developerChef for the Symfony developer
Chef for the Symfony developer
 
Php7
Php7Php7
Php7
 
Consuming GRIN GLOBAL Webservices
Consuming GRIN GLOBAL WebservicesConsuming GRIN GLOBAL Webservices
Consuming GRIN GLOBAL Webservices
 
Benefits of the CodeIgniter Framework
Benefits of the CodeIgniter FrameworkBenefits of the CodeIgniter Framework
Benefits of the CodeIgniter Framework
 
TDC São Paulo - Arquitetura .NET – Integrando a Autenticação do ASP.NET MVC e...
TDC São Paulo - Arquitetura .NET – Integrando a Autenticação do ASP.NET MVC e...TDC São Paulo - Arquitetura .NET – Integrando a Autenticação do ASP.NET MVC e...
TDC São Paulo - Arquitetura .NET – Integrando a Autenticação do ASP.NET MVC e...
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flask
 
9780538745840 ppt ch09
9780538745840 ppt ch099780538745840 ppt ch09
9780538745840 ppt ch09
 
contentDM
contentDMcontentDM
contentDM
 

More from Paul Yang

release_python_day3_slides_201606.pdf
release_python_day3_slides_201606.pdfrelease_python_day3_slides_201606.pdf
release_python_day3_slides_201606.pdfPaul Yang
 
release_python_day1_slides_201606.pdf
release_python_day1_slides_201606.pdfrelease_python_day1_slides_201606.pdf
release_python_day1_slides_201606.pdfPaul Yang
 
release_python_day2_slides_201606.pdf
release_python_day2_slides_201606.pdfrelease_python_day2_slides_201606.pdf
release_python_day2_slides_201606.pdfPaul Yang
 
RHEL5 XEN HandOnTraining_v0.4.pdf
RHEL5 XEN HandOnTraining_v0.4.pdfRHEL5 XEN HandOnTraining_v0.4.pdf
RHEL5 XEN HandOnTraining_v0.4.pdfPaul Yang
 
Intel® AT-d Validation Overview v0_3.pdf
Intel® AT-d Validation Overview v0_3.pdfIntel® AT-d Validation Overview v0_3.pdf
Intel® AT-d Validation Overview v0_3.pdfPaul Yang
 
HP Performance Tracking ADK_part1.pdf
HP Performance Tracking ADK_part1.pdfHP Performance Tracking ADK_part1.pdf
HP Performance Tracking ADK_part1.pdfPaul Yang
 
HP Performance Tracking ADK part2.pdf
HP Performance Tracking ADK part2.pdfHP Performance Tracking ADK part2.pdf
HP Performance Tracking ADK part2.pdfPaul Yang
 
Determination of Repro Rates 20140724.pdf
Determination of Repro Rates 20140724.pdfDetermination of Repro Rates 20140724.pdf
Determination of Repro Rates 20140724.pdfPaul Yang
 
Debug ADK performance issue 20140729.pdf
Debug ADK performance issue 20140729.pdfDebug ADK performance issue 20140729.pdf
Debug ADK performance issue 20140729.pdfPaul Yang
 
A Special-Purpose Peer-to-Peer File Sharing System for Mobile ad Hoc Networks...
A Special-Purpose Peer-to-Peer File Sharing System for Mobile ad Hoc Networks...A Special-Purpose Peer-to-Peer File Sharing System for Mobile ad Hoc Networks...
A Special-Purpose Peer-to-Peer File Sharing System for Mobile ad Hoc Networks...Paul Yang
 
A brief study on bottlenecks to Intel vs. Acer v0.1.pdf
A brief study on bottlenecks to Intel vs. Acer v0.1.pdfA brief study on bottlenecks to Intel vs. Acer v0.1.pdf
A brief study on bottlenecks to Intel vs. Acer v0.1.pdfPaul Yang
 
出租店系統_楊曜年_林宏庭_OOD.pdf
出租店系統_楊曜年_林宏庭_OOD.pdf出租店系統_楊曜年_林宏庭_OOD.pdf
出租店系統_楊曜年_林宏庭_OOD.pdfPaul Yang
 
Arm Neoverse market update_05122020.pdf
Arm Neoverse market update_05122020.pdfArm Neoverse market update_05122020.pdf
Arm Neoverse market update_05122020.pdfPaul Yang
 
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdfBuilding PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdfPaul Yang
 
Agile & Secure SDLC
Agile & Secure SDLCAgile & Secure SDLC
Agile & Secure SDLCPaul Yang
 
Mitigating routing misbehavior in mobile ad hoc networks
Mitigating routing misbehavior in mobile ad hoc networks Mitigating routing misbehavior in mobile ad hoc networks
Mitigating routing misbehavior in mobile ad hoc networks Paul Yang
 
Nodes bearing grudges
Nodes bearing grudgesNodes bearing grudges
Nodes bearing grudgesPaul Yang
 
Routing Security and Authentication Mechanism for Mobile Ad Hoc Networks
Routing Security and Authentication Mechanism for Mobile Ad Hoc NetworksRouting Security and Authentication Mechanism for Mobile Ad Hoc Networks
Routing Security and Authentication Mechanism for Mobile Ad Hoc Networks Paul Yang
 
Clients developing_chunghwa telecom
Clients developing_chunghwa telecomClients developing_chunghwa telecom
Clients developing_chunghwa telecomPaul Yang
 
English teaching in icebreaker and grammar analysis
English teaching in icebreaker and grammar analysisEnglish teaching in icebreaker and grammar analysis
English teaching in icebreaker and grammar analysisPaul Yang
 

More from Paul Yang (20)

release_python_day3_slides_201606.pdf
release_python_day3_slides_201606.pdfrelease_python_day3_slides_201606.pdf
release_python_day3_slides_201606.pdf
 
release_python_day1_slides_201606.pdf
release_python_day1_slides_201606.pdfrelease_python_day1_slides_201606.pdf
release_python_day1_slides_201606.pdf
 
release_python_day2_slides_201606.pdf
release_python_day2_slides_201606.pdfrelease_python_day2_slides_201606.pdf
release_python_day2_slides_201606.pdf
 
RHEL5 XEN HandOnTraining_v0.4.pdf
RHEL5 XEN HandOnTraining_v0.4.pdfRHEL5 XEN HandOnTraining_v0.4.pdf
RHEL5 XEN HandOnTraining_v0.4.pdf
 
Intel® AT-d Validation Overview v0_3.pdf
Intel® AT-d Validation Overview v0_3.pdfIntel® AT-d Validation Overview v0_3.pdf
Intel® AT-d Validation Overview v0_3.pdf
 
HP Performance Tracking ADK_part1.pdf
HP Performance Tracking ADK_part1.pdfHP Performance Tracking ADK_part1.pdf
HP Performance Tracking ADK_part1.pdf
 
HP Performance Tracking ADK part2.pdf
HP Performance Tracking ADK part2.pdfHP Performance Tracking ADK part2.pdf
HP Performance Tracking ADK part2.pdf
 
Determination of Repro Rates 20140724.pdf
Determination of Repro Rates 20140724.pdfDetermination of Repro Rates 20140724.pdf
Determination of Repro Rates 20140724.pdf
 
Debug ADK performance issue 20140729.pdf
Debug ADK performance issue 20140729.pdfDebug ADK performance issue 20140729.pdf
Debug ADK performance issue 20140729.pdf
 
A Special-Purpose Peer-to-Peer File Sharing System for Mobile ad Hoc Networks...
A Special-Purpose Peer-to-Peer File Sharing System for Mobile ad Hoc Networks...A Special-Purpose Peer-to-Peer File Sharing System for Mobile ad Hoc Networks...
A Special-Purpose Peer-to-Peer File Sharing System for Mobile ad Hoc Networks...
 
A brief study on bottlenecks to Intel vs. Acer v0.1.pdf
A brief study on bottlenecks to Intel vs. Acer v0.1.pdfA brief study on bottlenecks to Intel vs. Acer v0.1.pdf
A brief study on bottlenecks to Intel vs. Acer v0.1.pdf
 
出租店系統_楊曜年_林宏庭_OOD.pdf
出租店系統_楊曜年_林宏庭_OOD.pdf出租店系統_楊曜年_林宏庭_OOD.pdf
出租店系統_楊曜年_林宏庭_OOD.pdf
 
Arm Neoverse market update_05122020.pdf
Arm Neoverse market update_05122020.pdfArm Neoverse market update_05122020.pdf
Arm Neoverse market update_05122020.pdf
 
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdfBuilding PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
 
Agile & Secure SDLC
Agile & Secure SDLCAgile & Secure SDLC
Agile & Secure SDLC
 
Mitigating routing misbehavior in mobile ad hoc networks
Mitigating routing misbehavior in mobile ad hoc networks Mitigating routing misbehavior in mobile ad hoc networks
Mitigating routing misbehavior in mobile ad hoc networks
 
Nodes bearing grudges
Nodes bearing grudgesNodes bearing grudges
Nodes bearing grudges
 
Routing Security and Authentication Mechanism for Mobile Ad Hoc Networks
Routing Security and Authentication Mechanism for Mobile Ad Hoc NetworksRouting Security and Authentication Mechanism for Mobile Ad Hoc Networks
Routing Security and Authentication Mechanism for Mobile Ad Hoc Networks
 
Clients developing_chunghwa telecom
Clients developing_chunghwa telecomClients developing_chunghwa telecom
Clients developing_chunghwa telecom
 
English teaching in icebreaker and grammar analysis
English teaching in icebreaker and grammar analysisEnglish teaching in icebreaker and grammar analysis
English teaching in icebreaker and grammar analysis
 

Recently uploaded

CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 

Recently uploaded (20)

CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 

release_python_day4_slides_201606_1.pdf