SlideShare a Scribd company logo
Rapid Web Development w/ Python
for Absolute Beginners
Rapid Web Development w/ Python
Python is, What? You know already, since you're hereWhat does make Python different?
2
Software Quality
Readability, coherence, reusable, deep support
Developer Productivity:
Less to type, less to debug, runs immediately
Program Portability
Moves between all major platforms, write once run more, easy-to-use package
management, own interpreter
Support Libraries
A large set of prebuilt libraries, homegrown libraries and 3rd party libraries too.
Python Basics
What can We do with Python?
Systems Programming
GUIs
Internet Scripting
Database Programming
Rapid Prototyping
Numeric & Scientific Programming
Gaming, Images
Web Services
AI
Serial Port COM.
Rapid Web Development w/ Python
Python BasicsSystems Programming
4
Sockets Files Processes
#create an INET, STREAMing socket
serversocket = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
#bind the socket to a public host,
# and a well-known port
serversocket.bind((socket.gethostname(), 80))
#become a server socket
serversocket.listen(5)
# Write config to file
conf_file = open(self.system_config_file,
"wb")
config_parser.write(conf_file)
conf_file.close()
# Read file by ‘with open’
with open(‘config.gile’, ‘r’) as f:
rd = f.read()
# import multiprocessing package
from multiprocessing import Process
def pr(name):
print ‘hello’, name
if __name__ == ‘__main__’:
p = Process(target=f, args(‘bob’,))
p.start() # run method pr by process
p.join() # ends process
# further details https://docs.python.org/2/
library/multiprocessing.html
Rapid Web Development w/ Python
Python BasicsGUIs
5
#gui
Python comes with a standard object-oriented interface called tkinter
from Tkinter import *
class Application(Frame):
def say_hi(self):
print "hi there, everyone!"
def createWidgets(self):
self.QUIT = Button(self)
self.QUIT["text"] = "QUIT"
self.QUIT["fg"] = "red"
self.QUIT["command"] = self.quit
self.QUIT.pack({"side": "left"})
self.hi_there = Button(self)
self.hi_there["text"] = "Hello",
self.hi_there["command"] = self.say_hi
self.hi_there.pack({"side": "left"})
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()
Python comes with standard Internet
modules that allow Python programs
to perform a wide variety of
networking tasks, in client and server
modes.
A large collection of 3rd party tools
are available for doing Internet
programming in Python.
Some of Web development
framework packages:
• Django
• Flask
• Plone
• Zope
• TurboGears
• Pyramid
• Web2py
Python BasicsInternet Scripting & Web Services
6
6
Rapid Web Development w/ Python
Python BasicsDatabase Programming
7
PEP 0249
There are Python interfaces to all commonly used
relational database systems such as Sybase,
Oracle, ODBC, MySQL, PostgreSQL, SQLite and
more.
Recently, Python gets some other interfaces for
NoSQL databases such as MongoDB, Cassandra,
CouchDB, ElasticSearch.
Pick the best fit for your project(s) and need(s).
Professional Skills
psycopg2
sqlalchemy
sqlite3
django-orm
Rating: 4 of 5 stars
Python	
Database	API	
Specification
# Write config to file
db = engine()
sess = session_maker()
sess.connect()
sess.save()
sess.commit()
sess.rollback()
sess.close()
DatabaseError
InterfaceError
ProgrammingError
Rapid Web Development w/ Python
Python Key Features8
Dynamic Typing: Python keeps track of the kinds of objects uses when the program runs
Automatic Memory Management: Python automatically allocates objects and collect garbage
when it is done already.
Programming-In-The-Large Support: Python includes tools such as modules, classes and
exceptions. These modules allow us to organise systems into components.
Built-in Object Types: lists, tuples, dictionaries and more…
Built-in Tools: Concatenation, slicing, sorting, mapping, filtering and more…
Library Utilities & 3rd Party Libs: Python contains a large set of libraries either built-in and 3rd
party for complex, logical, scientific, security, internet operations and more…
Easy to learn for
newbies.
Programming
Language seems
designed
Best for Small task
with the help of
predefined and
keywords and
commands.
Asynchronous coding
Multiparadigm
approach
Great Object Oriented
Approach
cleaner Syntax
Everything is an object
Force programmer to
follow certain
convention
Codes wont work if
indentation is incorrect
Speed can be an issue
Design restrictions
Encoding, UTF-8 is a
damn headache
Python is not in Web
browsers.
Python is hard to
secure.
Python global
interpreter lock,
means only one
thread can access
Python internals at a
time.
Web applications are business strategies and policies implemented on the Web through the use of User,
Business and Data services.
ServerClient
Get me something
Do something
Set something
Delete something
200 OK
400 Bad Request
404 Not Found
500 Internal Server Error
Rapid Web Development w/ Python
Web Application DevelopmentKey-Points
11
3 tiers: User Services, Business Services, Data Services.
The User Service tier creates a visual gateway for the
consumer to interact with the application. This can range
from basic HTML and DHTML to complex COM
components and Java applets.
Business Services tier can range from Web scripting in
ASP/PHP/JSP to server side programming such as TCL,
CORBA and PERL, PYTHON, that allows the user to
perform complex actions through a Web interface.
Data services store, retrieve and update information at a
high level. Databases, file systems, and writeable media
are all examples of Data storage and retrieval devices.
Ref: http://www.sitepoint.com/development-guide-success/
Client-Server Topology
HTML, JS, CSS
Back-end Services, Cache
Template Rendering
Model-View-Controller
Cross-Browsers(deprecated)
Mobile-First approach / UX
Bootstrap	
jQuery	
Angular	
Twig	
Jinja	
WTForms
Define your model
which will be stored in
Database, filesystem,
media server
whatever…
Make your Web
application rich with
Javascript libraries,
template engines,
mobile-first designs…
NAME
SURNAME
DOB
GENDERModel
View
Controller APP
RESTful Architecture - Representational State Transfer
CORBA
WSDL / SOAP
XML
REST
Web had become so pervasive in the past 18
years.
programmers started to realize that they
could use the concepts of REST to build
distributed services and model service-
oriented architectures (SOAs).
The idea of SOA is that application
developers design their systems as a set of
reusable, decoupled, distributed services
Nowadays, though, when you think of SOA,
you think of SOAP-based web services.
Rapid Web Development w/ Python
RESTful Web ArchitectureDistributed - Stateless - Familiarity - Interoperability - Scalability
14
The idea behind it is that you stick to the
finite set of operations of the application
protocol you’re distributing your services
upon. This means that you don’t have an
“action” parameter in your URI and use
only the methods of HTTP for your web
services.
The Uniform, Constrained Interface Addressability
HATEOAS
Representation-Oriented
HTTP content negotiation is a very powerful
tool when writing web services. With the
Accept header, a client can list its
preferred response formats. Ajax clients can
ask for JSON, Java for XML, Ruby for YAML.
Another thing this is very useful for is
versioning of services.
In the REST world, addressability is
managed through the use of URIs. When
you make a request for information in
your browser, you are typing in a URI.
Each HTTP request must contain the URI
of the object you are requesting
information from or posting information
to.
The final principle of REST is the idea of
using Hypermedia As The Engine Of
Application State (HATEOAS).
Hypermedia is a document-centric
approach with the added support for
embedding links to other services and
information within that document format.
Agile web development is not a specific process,
action, or a daylong exercise.
Agile is a mindset, an attitude with which a project is
undertaken.
Agile Web Projects w/ Python
Rapid Web Development w/ Python
Agile Web Development w/ PythonAgile Basics
16
Individuals
Interactions
Working
Software
Customer
Collaboration
Responding to
Change
self-organization and
motivation are important, as
are interactions like co-location
and pair programming.
working software is more
useful and welcome than just
presenting documents to
clients in meetings.
requirements cannot be fully
collected at the beginning of
the software development
cycle, therefore continuous
customer or stakeholder
involvement is very
important.
agile methods are focused
on quick responses to
change and continuous
development.
Where is Python on the cycle
Development	Speed
Since Python, let developers develop
fast, rapidly test for environment-free,
deliver quickly by easy-packaging. That
is completely what Agile wants, isn’t it?
Software Quality
Sometimes, making something fast
causes some unexpected
consequences, thus our goal may be far
away where we are now. Python, keeps
quality for us
Rich Library Support
Main goal is speed in Agile, and
customer requirements never end.
Python built-in & 3rd party libs help us to
no need to discover the world from the
scratch
.py
Rapid Web Development w/ Python
Agile Web Development w/ PythonComparison between traditional & Agile
18
Company B2 Company C3 Others4
Ref: http://sixrevisions.com/web-development/agile/
Some of Agile Manifesto Principles
Early and continuous delivery Sustainable Development
Face-to-face conversationWelcome changing requirements
Early and continuous delivery
helps us to keep customer(s),
POs involved in the development
cycle.
Software lifecycle never ends
but you complete tasks and
deliver early micro-products
before milestones.
Since, we have not done yet with
the development, we can easily
adapt any change on
requirement to the progress.
Communication is the heart of
teams and it helps the team to
make sure about every single
issue.
Rapid Web Development w/ Python
Agile Web Development w/ PythonPython - Libs - Frameworks - Rapid Development
20
Python has own unique features,
so do Agile! Since both of these two aim
same goals and benefits, we can mix’s into a
single progress and improve acceleration,
quality, stability and reliability of what we do.
I know kung-fu
We know Agile
We know Web
We know Python
What could we do
with all of these?
A spaceship to Mars!
No spaceship but:
Dashboards
Monitoring systems
Facebook
Twitter
Youtube
Scientific softwares
NASA uses it already!!!
Google uses too !!!
Accounting software
ie: Freshbooks
CRUD systems
Cloud Systems
Do it your own Amazon!
Rapid Web Development w/ Python
Python-Web-FrameworksA little about popular ones.
23
django
Tornado
Full-Stack Frameworks
Falcon
CubicWeb
Reahl
Zope2
Aiohttp
Bottle
Micro Frameworks
Flask
Pyramid
Muffin
Wheezy Web
Rapid Web Development w/ Python
Python Web Frameworks24
The Web framework for perfectionists with
deadlines
Django's "batteries included" approach
makes it easy for developers who know
Python already to dive in to web
applications quickly without needing to
make a lot of decisions about their
application's infrastructure ahead of time.
Django has for templating, forms, routing,
authentication, basic database
administration, and more built in.
Django Falcon
Flask
Falcon is a ridiculously fast, minimalist
Python web framework for building cloud
APIs and app backends.
The Falcon web framework encourages
the REST architectural style, meaning
(among other things) that you think in
terms of resources and state transitions,
which map to HTTP verbs.
Flask is a "microframework" primarily
aimed at small applications with simpler
requirements.
Though Flask has a shorter history, it has
been able to learn from frameworks that
have come before and has set its sights
firmly on small projects. It is clearly used
most often in smaller projects with just
one or two functions.
My picks :)
Rapid Web Development w/ Python
Python Web FrameworksStart your project: Django
25
$ django-admin startproject mysite
$ python manage.py migrate
$ python manage.py runserver
$ Performing system checks...
0 errors found
October 31, 2015 - 15:50:53
Django version 1.8, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Sites using Django
Disqus
Instagram
The Guardian
Knight Foundation
MacArthur Foundation
Mozilla
National Geographic
Open Knowledge
Foundation
Pinterest
NASA
Open Stack
Rapid Web Development w/ Python
Python Web FrameworksStart your project: Falcon
26
#	sample.py	
import	falcon	
import	json	
		
class	QuoteResource:	
				def	on_get(self,	req,	resp):	
								"""Handles	GET	requests"""	
								quote	=	{	
												'quote':	'I've	always	been	more	interested	in	the	future	than	in	the	past.',	
												'author':	'Grace	Hopper'	
								}	
								resp.body	=	json.dumps(quote)	
		
api	=	falcon.API()	
api.add_route('/quote',	QuoteResource())	
Features
• Highly-optimized,
extensible code base
• Intuitive routing via URI
templates and resource
classes
• Easy access to headers and
bodies through request
and response classes
• Does not use WebOb
(some of us do indeed
consider this a feature)
• Idiomatic HTTP error
responses via a handy
exception base class
• DRY request processing
using global, resource, and
method hooks
• Snappy unit testing
through WSGI helpers and
mocks
• CPython 2.6/2.7, PyPy,
Jython 2.7, and CPython
Rapid Web Development w/ Python
Python Web FrameworksStart your project: Flask
27
import	flask	
from	flask	import	Flask	
from	flask	import	render_template	
from	flask	import	request	
from	flask	import	session	
from	helper.Resources	import	Resources,	utilities	
from	controller	import	Controller	
app	=	Flask(__name__)	
@app.route('/')	
def	index():	
				try:	
								controller	=	Controller()	
								title	=	Resources.APP["title"]	
								tasks	=	controller.get_task_list()	
								users	=	controller.get_users_list()	
								return	render_template(“index.html",	title=title,	tasks=tasks,	users=users)	
				except	BaseException	as	exception:	
								print	exception.message	
if	__name__	==	'__main__':	
				app.run(host=Resources.APP["host"],	
												port=Resources.APP["port"],	
												debug=Resources.APP["debug"])	
Features
• built in development server
and debugger
• integrated unit testing
support
• RESTful request dispatching
• uses Jinja2 templating
• support for secure cookies
(client side sessions)
• 100% WSGI 1.0 compliant
• Unicode based
Rapid Web Development w/ Python
Python Web FrameworksA Kindly Benchmark
28
Ref: http://klen.github.io/py-frameworks-bench/#results
Rapid Web Development w/ Python
•Python Web FrameworksMake your own choice based on what you need
29
Light Rich FeatureSpeed
Rapid Web Development w/ Python
Python Web FrameworksPicking Strategy
30
MVC
module-based
Aggregate support unit tests asset/package
management
multilingual &
localisation
ORM support documentation &
Long-term support
Rapid Web Development w/ Python
Develop-Test-Deploy31
Development
More test
Test
Deploy
After we made our Web projects we need to deliver it, but
Deploy your project by packing with setup.py, run it on a Web server with WSGI,
Apache, nginx. gunicorn…
Since, we work as Agile and we deliver early & often, keep testing so far.
First, we have to test it, even start with testing first!
Rapid Web Development w/ Python
Develop-Test-Deploy32
import	unittest	
import	sys	
import	os	
#	import	Statistics	class	to	call	its	method	and	test	them.	
from	app	import	Statistics	
class	TestStatistics(unittest.TestCase):	
				"""	
				Test	statistics	app	tests	
				"""	
				statistics	=	Statistics()	
				malformed_host_file	=	PARENT_DIR	+	"/statistics/tests/data/HostState.txt"	
				malformed_instance_file	=	PARENT_DIR	+	"/statistics/tests/data/InstanceState.txt"	
				def	testHostFileFormer(self):	
								"""	
								Check	file	format	is	former	or	malformed	
								@return	void	
								"""	
								with	open(self.statistics.host_file)	as	file_to_test:	
												self.assertTrue(self.statistics.check_file(file_to_test.read()))	
				def	testInstanceFileFormer(self):	
								"""	
								Check	file	format	is	former	or	malformed	
								@return	void	
								"""	
								with	open(self.statistics.instance_file)	as	file_to_test:	
												self.assertTrue(self.statistics.check_file(file_to_test.read()))	
				def	testMalformedHostFile(self):	
								"""	
								Check	file	format	is	former	or	malformed	
								@return	void	
								"""	
								with	open(self.malformed_host_file)	as	file_to_test:	
												self.assertFalse(self.statistics.check_file(file_to_test.read()))	
				def	testMalformedInstanceFile(self):	
								"""	
								Check	file	format	is	former	or	malformed	
								@return	void	
								"""	
								with	open(self.malformed_instance_file)	as	file_to_test:	
												self.assertFalse(self.statistics.check_file(file_to_test.read()))	
				def	testWriteTarget(self):	
								"""	
								Check	if	targeted	file	is	written	
								@return	void	
								"""	
								dummy_content	=	["HostClustering:	8,	0.75","DatacentreClustering:	8,	0.36","AvailableHosts:	3,2,5,10,6"]	
								self.assertTrue(self.statistics.write_target(dummy_content))	
def	run():	
				suite	=	unittest.TestLoader().loadTestsFromTestCase(TestStatistics)	
				unittest.TextTestRunner(verbosity=2).run(suite)	
if	__name__	==	"__main__":	
				suite	=	unittest.TestLoader().loadTestsFromTestCase(TestStatistics)	
				unittest.TextTestRunner(verbosity=2).run(suite)
Test Sample
Rapid Web Development w/ Python
Develop-Test-Deploy33
from	setuptools	import	setup,	find_packages	
from	codecs	import	open	
from	os	import	path	
here	=	path.abspath(path.dirname(__file__))	
with	open(path.join(here,	'README.md'),	encoding='utf-8')	as	f:	
				long_description	=	f.read()	
setup(	
				name='basic-todo',	
				version='1.0.0',	
				description='A	sample	Python	project',	
				long_description=long_description,	
				url='https://github.com/fatihzkaratana/basic-todo',	
				author='Fatih	Karatana',	
				author_email='fatih@karatana.com',	
				license='MIT',	
				classifiers=[	
								'Development	Status	::	3	-	Alpha',	
								'Intended	Audience	::	Developers',	
								'Topic	::	Software	Development	::	Build	Tools',	
								'License	::	OSI	Approved	::	MIT	License',	
								'Programming	Language	::	Python	::	2',	
								'Programming	Language	::	Python	::	2.6',	
								'Programming	Language	::	Python	::	2.7',	
								'Programming	Language	::	Python	::	3',	
								'Programming	Language	::	Python	::	3.2',	
								'Programming	Language	::	Python	::	3.3',	
								'Programming	Language	::	Python	::	3.4',	
				],	
				keywords='sample	flask	restful	web	application	development',	
				packages=find_packages(exclude=['contrib',	'docs',	'tests']),	
				install_requires=['Flask>=0.10'],	
				extras_require={	
								'dev':	['check-manifest'],	
								'test':	['coverage'],	
				},	
				package_data={},	
				data_files=[('tasks',	['db/tasks.json']),('users',	['db/users.json'])],	
				entry_points={	
								'console_scripts':	[	
												'basic-todo=app:main',	
								],	
				},	
)	
setup.py
Coffee?
?
DEMO Time
Cabin crew take-off positions please!
https://github.com/fatihzkaratana/basic-todo
Rapid Web Development w/ Python
CredentialsActually, something about me :)
37
Labris	Networks	
ODTU Teknokent
Galyum Blok K.1 N.1
fatih[/at/]karatana.com
twitter.com/fatihzkaratana github.com/fatihzkaratana
Fatih Karatana, Computer Engineer
Software Architect & Data Visualization Team Lead at Labris Networks
Current
Labris Networks, Ankara
Previous
Turksat A.S., Ankara
High Level Software, Lefkoşa
Outsource Software Ltd, Gazimağusa
Innovia Digital, Lefkoşa
Education
Cyprus International University
Thanks for participate
Python Turkey

More Related Content

What's hot

Intro to Perfect - LA presentation
Intro to Perfect - LA presentationIntro to Perfect - LA presentation
Intro to Perfect - LA presentation
Tim Taplin
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
Kevin Gill
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
Sean Coates
 
Firefox OS overview
Firefox OS overviewFirefox OS overview
Firefox OS overview
Fred Lin
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
Alessandro Cinelli (cirpo)
 
'MICROFRONTENDS WITH REACT' by Liliia Karpenko
 'MICROFRONTENDS WITH REACT' by Liliia Karpenko 'MICROFRONTENDS WITH REACT' by Liliia Karpenko
'MICROFRONTENDS WITH REACT' by Liliia Karpenko
OdessaJS Conf
 
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
OdessaJS Conf
 
PHP Frameworks, or how I learnt to stop worrying and love the code
PHP Frameworks, or how I learnt to stop worrying and love the codePHP Frameworks, or how I learnt to stop worrying and love the code
PHP Frameworks, or how I learnt to stop worrying and love the code
Michal Juhas
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
Alessandro Cinelli (cirpo)
 
Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0
joescars
 
Phpyahoo
PhpyahooPhpyahoo
Introduction of laravel framework.
Introduction of laravel framework.Introduction of laravel framework.
Introduction of laravel framework.
Omid Nikrah
 
Web presentation
Web presentationWeb presentation
Web presentation
Solaiman Hossain Tuhin
 
PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matter
Mizno Kruge
 
Python Version 3.7
Python Version 3.7Python Version 3.7
Python Version 3.7
Mobiloitte
 
Know about cake php framework with vertexplus
Know about  cake php framework with vertexplusKnow about  cake php framework with vertexplus
Know about cake php framework with vertexplus
VertexPlus Softwares Pvt. Ltd.
 
Frappe framework
Frappe framework Frappe framework
Frappe framework
eurosigdoc acm
 
Python Development Services Mobiloitte
Python Development Services MobiloittePython Development Services Mobiloitte
Python Development Services Mobiloitte
Mobiloitte
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Rodolfo Finochietti
 
Workspace on asp.net web aplication development
Workspace on asp.net  web aplication developmentWorkspace on asp.net  web aplication development
Workspace on asp.net web aplication development
KBA Systems
 

What's hot (20)

Intro to Perfect - LA presentation
Intro to Perfect - LA presentationIntro to Perfect - LA presentation
Intro to Perfect - LA presentation
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
 
Firefox OS overview
Firefox OS overviewFirefox OS overview
Firefox OS overview
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
'MICROFRONTENDS WITH REACT' by Liliia Karpenko
 'MICROFRONTENDS WITH REACT' by Liliia Karpenko 'MICROFRONTENDS WITH REACT' by Liliia Karpenko
'MICROFRONTENDS WITH REACT' by Liliia Karpenko
 
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
 
PHP Frameworks, or how I learnt to stop worrying and love the code
PHP Frameworks, or how I learnt to stop worrying and love the codePHP Frameworks, or how I learnt to stop worrying and love the code
PHP Frameworks, or how I learnt to stop worrying and love the code
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0
 
Phpyahoo
PhpyahooPhpyahoo
Phpyahoo
 
Introduction of laravel framework.
Introduction of laravel framework.Introduction of laravel framework.
Introduction of laravel framework.
 
Web presentation
Web presentationWeb presentation
Web presentation
 
PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matter
 
Python Version 3.7
Python Version 3.7Python Version 3.7
Python Version 3.7
 
Know about cake php framework with vertexplus
Know about  cake php framework with vertexplusKnow about  cake php framework with vertexplus
Know about cake php framework with vertexplus
 
Frappe framework
Frappe framework Frappe framework
Frappe framework
 
Python Development Services Mobiloitte
Python Development Services MobiloittePython Development Services Mobiloitte
Python Development Services Mobiloitte
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
Workspace on asp.net web aplication development
Workspace on asp.net  web aplication developmentWorkspace on asp.net  web aplication development
Workspace on asp.net web aplication development
 

Viewers also liked

Gic2011 aula7-ingles-theory
Gic2011 aula7-ingles-theoryGic2011 aula7-ingles-theory
Gic2011 aula7-ingles-theory
Marielba-Mayeya Zacarias
 
Redes Sociales
Redes SocialesRedes Sociales
Redes Sociales
Paola Avila
 
Gic2011 aula1-ingles
Gic2011 aula1-inglesGic2011 aula1-ingles
Gic2011 aula1-ingles
Marielba-Mayeya Zacarias
 
Destination pluto
Destination plutoDestination pluto
Destination pluto
Lisa Baird
 
Entity Linking via Graph-Distance Minimization
Entity Linking via Graph-Distance MinimizationEntity Linking via Graph-Distance Minimization
Entity Linking via Graph-Distance Minimization
Roi Blanco
 
International MBA Student Connector Program
International MBA Student Connector ProgramInternational MBA Student Connector Program
International MBA Student Connector Program
Halifax Partnership
 
#ForoEGovAR | Bases para las Políticas para las Sociedades del Conocimiento
#ForoEGovAR | Bases para las Políticas para las Sociedades del Conocimiento#ForoEGovAR | Bases para las Políticas para las Sociedades del Conocimiento
#ForoEGovAR | Bases para las Políticas para las Sociedades del Conocimiento
CESSI ArgenTIna
 
Hellomynameis,lindsayhoward
Hellomynameis,lindsayhowardHellomynameis,lindsayhoward
Hellomynameis,lindsayhoward
Lindsay Howard
 
Delivery Of Future Content
Delivery Of Future ContentDelivery Of Future Content
Delivery Of Future Content
Peter Lancaster
 
Cloud webinar final
Cloud webinar finalCloud webinar final
Cloud webinar final
Ness Technologies
 
Earth Science Chap 1 Topographic and geographic maps
Earth Science Chap 1 Topographic and geographic mapsEarth Science Chap 1 Topographic and geographic maps
Earth Science Chap 1 Topographic and geographic maps
mshenry
 
Data Days - Open Belgium (2014-02-17)
Data Days - Open Belgium (2014-02-17)Data Days - Open Belgium (2014-02-17)
Data Days - Open Belgium (2014-02-17)
Erik Mannens
 
Jupiter1
Jupiter1Jupiter1
Jupiter1
Lisa Baird
 
Ble boise codecamp
Ble boise codecampBle boise codecamp
Ble boise codecamp
Chip Keyes
 
Mayonn, Inc. Website in PDF format
Mayonn, Inc. Website in PDF formatMayonn, Inc. Website in PDF format
Mayonn, Inc. Website in PDF format
mayonn
 
General guidelines for the selection of the best sections and category of sch...
General guidelines for the selection of the best sections and category of sch...General guidelines for the selection of the best sections and category of sch...
General guidelines for the selection of the best sections and category of sch...
Mernalyn Magbilang
 
Harry potter and the deathly hallows review.
Harry potter and the deathly hallows review.Harry potter and the deathly hallows review.
Harry potter and the deathly hallows review.
Becca McPartland
 
Diabetes For Dummies, 3rd Edition by Alan L. Rubin, MD Index
Diabetes For Dummies, 3rd Edition by Alan L. Rubin, MD IndexDiabetes For Dummies, 3rd Edition by Alan L. Rubin, MD Index
Diabetes For Dummies, 3rd Edition by Alan L. Rubin, MD Index
AlanLRubinMD
 
D:\Ben\G48 53011810075
D:\Ben\G48 53011810075D:\Ben\G48 53011810075
D:\Ben\G48 53011810075
BenjamasS
 

Viewers also liked (20)

Gic2011 aula7-ingles-theory
Gic2011 aula7-ingles-theoryGic2011 aula7-ingles-theory
Gic2011 aula7-ingles-theory
 
Redes Sociales
Redes SocialesRedes Sociales
Redes Sociales
 
Gic2011 aula1-ingles
Gic2011 aula1-inglesGic2011 aula1-ingles
Gic2011 aula1-ingles
 
Destination pluto
Destination plutoDestination pluto
Destination pluto
 
Entity Linking via Graph-Distance Minimization
Entity Linking via Graph-Distance MinimizationEntity Linking via Graph-Distance Minimization
Entity Linking via Graph-Distance Minimization
 
International MBA Student Connector Program
International MBA Student Connector ProgramInternational MBA Student Connector Program
International MBA Student Connector Program
 
#ForoEGovAR | Bases para las Políticas para las Sociedades del Conocimiento
#ForoEGovAR | Bases para las Políticas para las Sociedades del Conocimiento#ForoEGovAR | Bases para las Políticas para las Sociedades del Conocimiento
#ForoEGovAR | Bases para las Políticas para las Sociedades del Conocimiento
 
Hellomynameis,lindsayhoward
Hellomynameis,lindsayhowardHellomynameis,lindsayhoward
Hellomynameis,lindsayhoward
 
CityMatters - MQO Presentation
CityMatters - MQO PresentationCityMatters - MQO Presentation
CityMatters - MQO Presentation
 
Delivery Of Future Content
Delivery Of Future ContentDelivery Of Future Content
Delivery Of Future Content
 
Cloud webinar final
Cloud webinar finalCloud webinar final
Cloud webinar final
 
Earth Science Chap 1 Topographic and geographic maps
Earth Science Chap 1 Topographic and geographic mapsEarth Science Chap 1 Topographic and geographic maps
Earth Science Chap 1 Topographic and geographic maps
 
Data Days - Open Belgium (2014-02-17)
Data Days - Open Belgium (2014-02-17)Data Days - Open Belgium (2014-02-17)
Data Days - Open Belgium (2014-02-17)
 
Jupiter1
Jupiter1Jupiter1
Jupiter1
 
Ble boise codecamp
Ble boise codecampBle boise codecamp
Ble boise codecamp
 
Mayonn, Inc. Website in PDF format
Mayonn, Inc. Website in PDF formatMayonn, Inc. Website in PDF format
Mayonn, Inc. Website in PDF format
 
General guidelines for the selection of the best sections and category of sch...
General guidelines for the selection of the best sections and category of sch...General guidelines for the selection of the best sections and category of sch...
General guidelines for the selection of the best sections and category of sch...
 
Harry potter and the deathly hallows review.
Harry potter and the deathly hallows review.Harry potter and the deathly hallows review.
Harry potter and the deathly hallows review.
 
Diabetes For Dummies, 3rd Edition by Alan L. Rubin, MD Index
Diabetes For Dummies, 3rd Edition by Alan L. Rubin, MD IndexDiabetes For Dummies, 3rd Edition by Alan L. Rubin, MD Index
Diabetes For Dummies, 3rd Edition by Alan L. Rubin, MD Index
 
D:\Ben\G48 53011810075
D:\Ben\G48 53011810075D:\Ben\G48 53011810075
D:\Ben\G48 53011810075
 

Similar to Rapid Web Development with Python for Absolute Beginners

Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020
Alaina Carter
 
CTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptxCTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptx
OduniyiAdebola
 
A Complete Guide to Python Web Development
A Complete Guide to Python Web DevelopmentA Complete Guide to Python Web Development
A Complete Guide to Python Web Development
Sparx IT Solutions Pvt Ltd
 
Python Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in PythonPython Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in Python
abhishekdf3
 
Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024
Clarion Technologies
 
Python
PythonPython
Why Your Next Project Should have Expert Hire Python Developers?
Why Your Next Project Should have Expert Hire Python Developers?Why Your Next Project Should have Expert Hire Python Developers?
Why Your Next Project Should have Expert Hire Python Developers?
EmilySmith271958
 
Why Your Business Should Leverage Python App Development in 2023.pptx
Why Your Business Should Leverage Python App Development in 2023.pptxWhy Your Business Should Leverage Python App Development in 2023.pptx
Why Your Business Should Leverage Python App Development in 2023.pptx
OnGraph Technologies Pvt. Ltd.
 
Mastering Full Stack Development with Python – CETPA Infotech.pdf
Mastering Full Stack Development with Python – CETPA Infotech.pdfMastering Full Stack Development with Python – CETPA Infotech.pdf
Mastering Full Stack Development with Python – CETPA Infotech.pdf
Cetpa Infotech Pvt Ltd
 
Skills and Responsibilities of a Python Developer.pdf
Skills and Responsibilities of a Python Developer.pdfSkills and Responsibilities of a Python Developer.pdf
Skills and Responsibilities of a Python Developer.pdf
uncodemy
 
9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications 9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications
SnehaDas60
 
main report on restaurant
main report on restaurantmain report on restaurant
main report on restaurant
Neeraj Kumar
 
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
mohitd6
 
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
PamRobert
 
Ramya devi R internet of things
Ramya devi R internet of thingsRamya devi R internet of things
Ramya devi R internet of things
PriyadharshiniVS
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
Kamal Acharya
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
Kunaal Kapoor
 
Python Development Company - Paragyte Technology
Python Development Company - Paragyte TechnologyPython Development Company - Paragyte Technology
Python Development Company - Paragyte Technology
Paragyte Technologies
 
Introduction to Backend Development (1).pptx
Introduction to Backend Development (1).pptxIntroduction to Backend Development (1).pptx
Introduction to Backend Development (1).pptx
OsuGodbless
 
Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.
Harsh Tamakuwala
 

Similar to Rapid Web Development with Python for Absolute Beginners (20)

Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020
 
CTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptxCTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptx
 
A Complete Guide to Python Web Development
A Complete Guide to Python Web DevelopmentA Complete Guide to Python Web Development
A Complete Guide to Python Web Development
 
Python Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in PythonPython Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in Python
 
Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024
 
Python
PythonPython
Python
 
Why Your Next Project Should have Expert Hire Python Developers?
Why Your Next Project Should have Expert Hire Python Developers?Why Your Next Project Should have Expert Hire Python Developers?
Why Your Next Project Should have Expert Hire Python Developers?
 
Why Your Business Should Leverage Python App Development in 2023.pptx
Why Your Business Should Leverage Python App Development in 2023.pptxWhy Your Business Should Leverage Python App Development in 2023.pptx
Why Your Business Should Leverage Python App Development in 2023.pptx
 
Mastering Full Stack Development with Python – CETPA Infotech.pdf
Mastering Full Stack Development with Python – CETPA Infotech.pdfMastering Full Stack Development with Python – CETPA Infotech.pdf
Mastering Full Stack Development with Python – CETPA Infotech.pdf
 
Skills and Responsibilities of a Python Developer.pdf
Skills and Responsibilities of a Python Developer.pdfSkills and Responsibilities of a Python Developer.pdf
Skills and Responsibilities of a Python Developer.pdf
 
9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications 9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications
 
main report on restaurant
main report on restaurantmain report on restaurant
main report on restaurant
 
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
 
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
 
Ramya devi R internet of things
Ramya devi R internet of thingsRamya devi R internet of things
Ramya devi R internet of things
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
 
Python Development Company - Paragyte Technology
Python Development Company - Paragyte TechnologyPython Development Company - Paragyte Technology
Python Development Company - Paragyte Technology
 
Introduction to Backend Development (1).pptx
Introduction to Backend Development (1).pptxIntroduction to Backend Development (1).pptx
Introduction to Backend Development (1).pptx
 
Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.
 

Recently uploaded

Mobile App Development Company in Noida - Drona Infotech.
Mobile App Development Company in Noida - Drona Infotech.Mobile App Development Company in Noida - Drona Infotech.
Mobile App Development Company in Noida - Drona Infotech.
Mobile App Development Company in Noida - Drona Infotech
 
ERP Software Solutions Provider in Coimbatore
ERP Software Solutions Provider in CoimbatoreERP Software Solutions Provider in Coimbatore
ERP Software Solutions Provider in Coimbatore
Nextskill Technologies
 
11 Top Cross Browser Testing Tools to Know About.pdf
11 Top Cross Browser Testing Tools to Know About.pdf11 Top Cross Browser Testing Tools to Know About.pdf
11 Top Cross Browser Testing Tools to Know About.pdf
kalichargn70th171
 
UMiami degree offer diploma Transcript
UMiami degree offer diploma TranscriptUMiami degree offer diploma Transcript
UMiami degree offer diploma Transcript
attueb
 
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
norina2645
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
taskroupseo
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
908dutch
 
NYGGS 360: A Complete ERP for Construction Innovation
NYGGS 360: A Complete ERP for Construction InnovationNYGGS 360: A Complete ERP for Construction Innovation
NYGGS 360: A Complete ERP for Construction Innovation
NYGGS Construction ERP Software
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
Philip Schwarz
 
Mobile App Development Company in Noida - Drona Infotech
Mobile App Development Company in Noida - Drona InfotechMobile App Development Company in Noida - Drona Infotech
Mobile App Development Company in Noida - Drona Infotech
Mobile App Development Company in Noida - Drona Infotech
 
Attendance Tracking From Paper To Digital
Attendance Tracking From Paper To DigitalAttendance Tracking From Paper To Digital
Attendance Tracking From Paper To Digital
Task Tracker
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
shivamt017
 
Maximizing Efficiency and Profitability: Optimizing Data Systems, Enhancing C...
Maximizing Efficiency and Profitability: Optimizing Data Systems, Enhancing C...Maximizing Efficiency and Profitability: Optimizing Data Systems, Enhancing C...
Maximizing Efficiency and Profitability: Optimizing Data Systems, Enhancing C...
OnePlan Solutions
 
ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation
sofiafernandezon
 
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
confluent
 
當測試開始左移
當測試開始左移當測試開始左移
當測試開始左移
Jersey (CHE-PING) Su
 
Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits
sheqnetworkmarketing
 
How To Fill Timesheet in TaskSprint: Quick Guide 2024
How To Fill Timesheet in TaskSprint: Quick Guide 2024How To Fill Timesheet in TaskSprint: Quick Guide 2024
How To Fill Timesheet in TaskSprint: Quick Guide 2024
TaskSprint | Employee Efficiency Software
 
Google ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learningGoogle ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learning
VishrutGoyani1
 
To Avoid Mistakes When Using Online Attendance Sheets
To Avoid Mistakes When Using Online Attendance SheetsTo Avoid Mistakes When Using Online Attendance Sheets
To Avoid Mistakes When Using Online Attendance Sheets
Task Tracker
 

Recently uploaded (20)

Mobile App Development Company in Noida - Drona Infotech.
Mobile App Development Company in Noida - Drona Infotech.Mobile App Development Company in Noida - Drona Infotech.
Mobile App Development Company in Noida - Drona Infotech.
 
ERP Software Solutions Provider in Coimbatore
ERP Software Solutions Provider in CoimbatoreERP Software Solutions Provider in Coimbatore
ERP Software Solutions Provider in Coimbatore
 
11 Top Cross Browser Testing Tools to Know About.pdf
11 Top Cross Browser Testing Tools to Know About.pdf11 Top Cross Browser Testing Tools to Know About.pdf
11 Top Cross Browser Testing Tools to Know About.pdf
 
UMiami degree offer diploma Transcript
UMiami degree offer diploma TranscriptUMiami degree offer diploma Transcript
UMiami degree offer diploma Transcript
 
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
 
NYGGS 360: A Complete ERP for Construction Innovation
NYGGS 360: A Complete ERP for Construction InnovationNYGGS 360: A Complete ERP for Construction Innovation
NYGGS 360: A Complete ERP for Construction Innovation
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
 
Mobile App Development Company in Noida - Drona Infotech
Mobile App Development Company in Noida - Drona InfotechMobile App Development Company in Noida - Drona Infotech
Mobile App Development Company in Noida - Drona Infotech
 
Attendance Tracking From Paper To Digital
Attendance Tracking From Paper To DigitalAttendance Tracking From Paper To Digital
Attendance Tracking From Paper To Digital
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
 
Maximizing Efficiency and Profitability: Optimizing Data Systems, Enhancing C...
Maximizing Efficiency and Profitability: Optimizing Data Systems, Enhancing C...Maximizing Efficiency and Profitability: Optimizing Data Systems, Enhancing C...
Maximizing Efficiency and Profitability: Optimizing Data Systems, Enhancing C...
 
ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation
 
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
 
當測試開始左移
當測試開始左移當測試開始左移
當測試開始左移
 
Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits
 
How To Fill Timesheet in TaskSprint: Quick Guide 2024
How To Fill Timesheet in TaskSprint: Quick Guide 2024How To Fill Timesheet in TaskSprint: Quick Guide 2024
How To Fill Timesheet in TaskSprint: Quick Guide 2024
 
Google ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learningGoogle ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learning
 
To Avoid Mistakes When Using Online Attendance Sheets
To Avoid Mistakes When Using Online Attendance SheetsTo Avoid Mistakes When Using Online Attendance Sheets
To Avoid Mistakes When Using Online Attendance Sheets
 

Rapid Web Development with Python for Absolute Beginners

  • 1. Rapid Web Development w/ Python for Absolute Beginners
  • 2. Rapid Web Development w/ Python Python is, What? You know already, since you're hereWhat does make Python different? 2 Software Quality Readability, coherence, reusable, deep support Developer Productivity: Less to type, less to debug, runs immediately Program Portability Moves between all major platforms, write once run more, easy-to-use package management, own interpreter Support Libraries A large set of prebuilt libraries, homegrown libraries and 3rd party libraries too.
  • 3. Python Basics What can We do with Python? Systems Programming GUIs Internet Scripting Database Programming Rapid Prototyping Numeric & Scientific Programming Gaming, Images Web Services AI Serial Port COM.
  • 4. Rapid Web Development w/ Python Python BasicsSystems Programming 4 Sockets Files Processes #create an INET, STREAMing socket serversocket = socket.socket( socket.AF_INET, socket.SOCK_STREAM) #bind the socket to a public host, # and a well-known port serversocket.bind((socket.gethostname(), 80)) #become a server socket serversocket.listen(5) # Write config to file conf_file = open(self.system_config_file, "wb") config_parser.write(conf_file) conf_file.close() # Read file by ‘with open’ with open(‘config.gile’, ‘r’) as f: rd = f.read() # import multiprocessing package from multiprocessing import Process def pr(name): print ‘hello’, name if __name__ == ‘__main__’: p = Process(target=f, args(‘bob’,)) p.start() # run method pr by process p.join() # ends process # further details https://docs.python.org/2/ library/multiprocessing.html
  • 5. Rapid Web Development w/ Python Python BasicsGUIs 5 #gui Python comes with a standard object-oriented interface called tkinter from Tkinter import * class Application(Frame): def say_hi(self): print "hi there, everyone!" def createWidgets(self): self.QUIT = Button(self) self.QUIT["text"] = "QUIT" self.QUIT["fg"] = "red" self.QUIT["command"] = self.quit self.QUIT.pack({"side": "left"}) self.hi_there = Button(self) self.hi_there["text"] = "Hello", self.hi_there["command"] = self.say_hi self.hi_there.pack({"side": "left"}) def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.createWidgets() root = Tk() app = Application(master=root) app.mainloop() root.destroy()
  • 6. Python comes with standard Internet modules that allow Python programs to perform a wide variety of networking tasks, in client and server modes. A large collection of 3rd party tools are available for doing Internet programming in Python. Some of Web development framework packages: • Django • Flask • Plone • Zope • TurboGears • Pyramid • Web2py Python BasicsInternet Scripting & Web Services 6 6
  • 7. Rapid Web Development w/ Python Python BasicsDatabase Programming 7 PEP 0249 There are Python interfaces to all commonly used relational database systems such as Sybase, Oracle, ODBC, MySQL, PostgreSQL, SQLite and more. Recently, Python gets some other interfaces for NoSQL databases such as MongoDB, Cassandra, CouchDB, ElasticSearch. Pick the best fit for your project(s) and need(s). Professional Skills psycopg2 sqlalchemy sqlite3 django-orm Rating: 4 of 5 stars Python Database API Specification # Write config to file db = engine() sess = session_maker() sess.connect() sess.save() sess.commit() sess.rollback() sess.close() DatabaseError InterfaceError ProgrammingError
  • 8. Rapid Web Development w/ Python Python Key Features8 Dynamic Typing: Python keeps track of the kinds of objects uses when the program runs Automatic Memory Management: Python automatically allocates objects and collect garbage when it is done already. Programming-In-The-Large Support: Python includes tools such as modules, classes and exceptions. These modules allow us to organise systems into components. Built-in Object Types: lists, tuples, dictionaries and more… Built-in Tools: Concatenation, slicing, sorting, mapping, filtering and more… Library Utilities & 3rd Party Libs: Python contains a large set of libraries either built-in and 3rd party for complex, logical, scientific, security, internet operations and more…
  • 9. Easy to learn for newbies. Programming Language seems designed Best for Small task with the help of predefined and keywords and commands. Asynchronous coding Multiparadigm approach Great Object Oriented Approach cleaner Syntax Everything is an object Force programmer to follow certain convention Codes wont work if indentation is incorrect Speed can be an issue Design restrictions Encoding, UTF-8 is a damn headache Python is not in Web browsers. Python is hard to secure. Python global interpreter lock, means only one thread can access Python internals at a time.
  • 10. Web applications are business strategies and policies implemented on the Web through the use of User, Business and Data services. ServerClient Get me something Do something Set something Delete something 200 OK 400 Bad Request 404 Not Found 500 Internal Server Error
  • 11. Rapid Web Development w/ Python Web Application DevelopmentKey-Points 11 3 tiers: User Services, Business Services, Data Services. The User Service tier creates a visual gateway for the consumer to interact with the application. This can range from basic HTML and DHTML to complex COM components and Java applets. Business Services tier can range from Web scripting in ASP/PHP/JSP to server side programming such as TCL, CORBA and PERL, PYTHON, that allows the user to perform complex actions through a Web interface. Data services store, retrieve and update information at a high level. Databases, file systems, and writeable media are all examples of Data storage and retrieval devices. Ref: http://www.sitepoint.com/development-guide-success/ Client-Server Topology HTML, JS, CSS Back-end Services, Cache Template Rendering Model-View-Controller Cross-Browsers(deprecated) Mobile-First approach / UX
  • 12. Bootstrap jQuery Angular Twig Jinja WTForms Define your model which will be stored in Database, filesystem, media server whatever… Make your Web application rich with Javascript libraries, template engines, mobile-first designs… NAME SURNAME DOB GENDERModel View Controller APP
  • 13. RESTful Architecture - Representational State Transfer CORBA WSDL / SOAP XML REST Web had become so pervasive in the past 18 years. programmers started to realize that they could use the concepts of REST to build distributed services and model service- oriented architectures (SOAs). The idea of SOA is that application developers design their systems as a set of reusable, decoupled, distributed services Nowadays, though, when you think of SOA, you think of SOAP-based web services.
  • 14. Rapid Web Development w/ Python RESTful Web ArchitectureDistributed - Stateless - Familiarity - Interoperability - Scalability 14 The idea behind it is that you stick to the finite set of operations of the application protocol you’re distributing your services upon. This means that you don’t have an “action” parameter in your URI and use only the methods of HTTP for your web services. The Uniform, Constrained Interface Addressability HATEOAS Representation-Oriented HTTP content negotiation is a very powerful tool when writing web services. With the Accept header, a client can list its preferred response formats. Ajax clients can ask for JSON, Java for XML, Ruby for YAML. Another thing this is very useful for is versioning of services. In the REST world, addressability is managed through the use of URIs. When you make a request for information in your browser, you are typing in a URI. Each HTTP request must contain the URI of the object you are requesting information from or posting information to. The final principle of REST is the idea of using Hypermedia As The Engine Of Application State (HATEOAS). Hypermedia is a document-centric approach with the added support for embedding links to other services and information within that document format.
  • 15. Agile web development is not a specific process, action, or a daylong exercise. Agile is a mindset, an attitude with which a project is undertaken. Agile Web Projects w/ Python
  • 16. Rapid Web Development w/ Python Agile Web Development w/ PythonAgile Basics 16 Individuals Interactions Working Software Customer Collaboration Responding to Change self-organization and motivation are important, as are interactions like co-location and pair programming. working software is more useful and welcome than just presenting documents to clients in meetings. requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important. agile methods are focused on quick responses to change and continuous development.
  • 17. Where is Python on the cycle Development Speed Since Python, let developers develop fast, rapidly test for environment-free, deliver quickly by easy-packaging. That is completely what Agile wants, isn’t it? Software Quality Sometimes, making something fast causes some unexpected consequences, thus our goal may be far away where we are now. Python, keeps quality for us Rich Library Support Main goal is speed in Agile, and customer requirements never end. Python built-in & 3rd party libs help us to no need to discover the world from the scratch .py
  • 18. Rapid Web Development w/ Python Agile Web Development w/ PythonComparison between traditional & Agile 18 Company B2 Company C3 Others4 Ref: http://sixrevisions.com/web-development/agile/
  • 19. Some of Agile Manifesto Principles Early and continuous delivery Sustainable Development Face-to-face conversationWelcome changing requirements Early and continuous delivery helps us to keep customer(s), POs involved in the development cycle. Software lifecycle never ends but you complete tasks and deliver early micro-products before milestones. Since, we have not done yet with the development, we can easily adapt any change on requirement to the progress. Communication is the heart of teams and it helps the team to make sure about every single issue.
  • 20. Rapid Web Development w/ Python Agile Web Development w/ PythonPython - Libs - Frameworks - Rapid Development 20 Python has own unique features, so do Agile! Since both of these two aim same goals and benefits, we can mix’s into a single progress and improve acceleration, quality, stability and reliability of what we do. I know kung-fu We know Agile We know Web We know Python What could we do with all of these?
  • 21. A spaceship to Mars!
  • 22. No spaceship but: Dashboards Monitoring systems Facebook Twitter Youtube Scientific softwares NASA uses it already!!! Google uses too !!! Accounting software ie: Freshbooks CRUD systems Cloud Systems Do it your own Amazon!
  • 23. Rapid Web Development w/ Python Python-Web-FrameworksA little about popular ones. 23 django Tornado Full-Stack Frameworks Falcon CubicWeb Reahl Zope2 Aiohttp Bottle Micro Frameworks Flask Pyramid Muffin Wheezy Web
  • 24. Rapid Web Development w/ Python Python Web Frameworks24 The Web framework for perfectionists with deadlines Django's "batteries included" approach makes it easy for developers who know Python already to dive in to web applications quickly without needing to make a lot of decisions about their application's infrastructure ahead of time. Django has for templating, forms, routing, authentication, basic database administration, and more built in. Django Falcon Flask Falcon is a ridiculously fast, minimalist Python web framework for building cloud APIs and app backends. The Falcon web framework encourages the REST architectural style, meaning (among other things) that you think in terms of resources and state transitions, which map to HTTP verbs. Flask is a "microframework" primarily aimed at small applications with simpler requirements. Though Flask has a shorter history, it has been able to learn from frameworks that have come before and has set its sights firmly on small projects. It is clearly used most often in smaller projects with just one or two functions. My picks :)
  • 25. Rapid Web Development w/ Python Python Web FrameworksStart your project: Django 25 $ django-admin startproject mysite $ python manage.py migrate $ python manage.py runserver $ Performing system checks... 0 errors found October 31, 2015 - 15:50:53 Django version 1.8, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. Sites using Django Disqus Instagram The Guardian Knight Foundation MacArthur Foundation Mozilla National Geographic Open Knowledge Foundation Pinterest NASA Open Stack
  • 26. Rapid Web Development w/ Python Python Web FrameworksStart your project: Falcon 26 # sample.py import falcon import json class QuoteResource: def on_get(self, req, resp): """Handles GET requests""" quote = { 'quote': 'I've always been more interested in the future than in the past.', 'author': 'Grace Hopper' } resp.body = json.dumps(quote) api = falcon.API() api.add_route('/quote', QuoteResource()) Features • Highly-optimized, extensible code base • Intuitive routing via URI templates and resource classes • Easy access to headers and bodies through request and response classes • Does not use WebOb (some of us do indeed consider this a feature) • Idiomatic HTTP error responses via a handy exception base class • DRY request processing using global, resource, and method hooks • Snappy unit testing through WSGI helpers and mocks • CPython 2.6/2.7, PyPy, Jython 2.7, and CPython
  • 27. Rapid Web Development w/ Python Python Web FrameworksStart your project: Flask 27 import flask from flask import Flask from flask import render_template from flask import request from flask import session from helper.Resources import Resources, utilities from controller import Controller app = Flask(__name__) @app.route('/') def index(): try: controller = Controller() title = Resources.APP["title"] tasks = controller.get_task_list() users = controller.get_users_list() return render_template(“index.html", title=title, tasks=tasks, users=users) except BaseException as exception: print exception.message if __name__ == '__main__': app.run(host=Resources.APP["host"], port=Resources.APP["port"], debug=Resources.APP["debug"]) Features • built in development server and debugger • integrated unit testing support • RESTful request dispatching • uses Jinja2 templating • support for secure cookies (client side sessions) • 100% WSGI 1.0 compliant • Unicode based
  • 28. Rapid Web Development w/ Python Python Web FrameworksA Kindly Benchmark 28 Ref: http://klen.github.io/py-frameworks-bench/#results
  • 29. Rapid Web Development w/ Python •Python Web FrameworksMake your own choice based on what you need 29 Light Rich FeatureSpeed
  • 30. Rapid Web Development w/ Python Python Web FrameworksPicking Strategy 30 MVC module-based Aggregate support unit tests asset/package management multilingual & localisation ORM support documentation & Long-term support
  • 31. Rapid Web Development w/ Python Develop-Test-Deploy31 Development More test Test Deploy After we made our Web projects we need to deliver it, but Deploy your project by packing with setup.py, run it on a Web server with WSGI, Apache, nginx. gunicorn… Since, we work as Agile and we deliver early & often, keep testing so far. First, we have to test it, even start with testing first!
  • 32. Rapid Web Development w/ Python Develop-Test-Deploy32 import unittest import sys import os # import Statistics class to call its method and test them. from app import Statistics class TestStatistics(unittest.TestCase): """ Test statistics app tests """ statistics = Statistics() malformed_host_file = PARENT_DIR + "/statistics/tests/data/HostState.txt" malformed_instance_file = PARENT_DIR + "/statistics/tests/data/InstanceState.txt" def testHostFileFormer(self): """ Check file format is former or malformed @return void """ with open(self.statistics.host_file) as file_to_test: self.assertTrue(self.statistics.check_file(file_to_test.read())) def testInstanceFileFormer(self): """ Check file format is former or malformed @return void """ with open(self.statistics.instance_file) as file_to_test: self.assertTrue(self.statistics.check_file(file_to_test.read())) def testMalformedHostFile(self): """ Check file format is former or malformed @return void """ with open(self.malformed_host_file) as file_to_test: self.assertFalse(self.statistics.check_file(file_to_test.read())) def testMalformedInstanceFile(self): """ Check file format is former or malformed @return void """ with open(self.malformed_instance_file) as file_to_test: self.assertFalse(self.statistics.check_file(file_to_test.read())) def testWriteTarget(self): """ Check if targeted file is written @return void """ dummy_content = ["HostClustering: 8, 0.75","DatacentreClustering: 8, 0.36","AvailableHosts: 3,2,5,10,6"] self.assertTrue(self.statistics.write_target(dummy_content)) def run(): suite = unittest.TestLoader().loadTestsFromTestCase(TestStatistics) unittest.TextTestRunner(verbosity=2).run(suite) if __name__ == "__main__": suite = unittest.TestLoader().loadTestsFromTestCase(TestStatistics) unittest.TextTestRunner(verbosity=2).run(suite) Test Sample
  • 33. Rapid Web Development w/ Python Develop-Test-Deploy33 from setuptools import setup, find_packages from codecs import open from os import path here = path.abspath(path.dirname(__file__)) with open(path.join(here, 'README.md'), encoding='utf-8') as f: long_description = f.read() setup( name='basic-todo', version='1.0.0', description='A sample Python project', long_description=long_description, url='https://github.com/fatihzkaratana/basic-todo', author='Fatih Karatana', author_email='fatih@karatana.com', license='MIT', classifiers=[ 'Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'Topic :: Software Development :: Build Tools', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.2', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', ], keywords='sample flask restful web application development', packages=find_packages(exclude=['contrib', 'docs', 'tests']), install_requires=['Flask>=0.10'], extras_require={ 'dev': ['check-manifest'], 'test': ['coverage'], }, package_data={}, data_files=[('tasks', ['db/tasks.json']),('users', ['db/users.json'])], entry_points={ 'console_scripts': [ 'basic-todo=app:main', ], }, ) setup.py
  • 35. ?
  • 36. DEMO Time Cabin crew take-off positions please! https://github.com/fatihzkaratana/basic-todo
  • 37. Rapid Web Development w/ Python CredentialsActually, something about me :) 37 Labris Networks ODTU Teknokent Galyum Blok K.1 N.1 fatih[/at/]karatana.com twitter.com/fatihzkaratana github.com/fatihzkaratana Fatih Karatana, Computer Engineer Software Architect & Data Visualization Team Lead at Labris Networks Current Labris Networks, Ankara Previous Turksat A.S., Ankara High Level Software, Lefkoşa Outsource Software Ltd, Gazimağusa Innovia Digital, Lefkoşa Education Cyprus International University