This tutorial will help you create your first webapp using Python and the Flask microframework. We will cover the following topics:
* What is Flask and why would you use it
* Rendering your first response
* Handling forms and POST data
* Using SQLAlchemy
* Writing your first RESTful API
* Holding open a connection to emit updates
* Testing your app with py.test
* Deploying to Redhat's Openshift platform
Familiarity with Python is assumed. A passing familiarity with Javascript is recommended by not essential.
https://github.com/danni/linux-conf-au-flask-tute
http://mirror.linux.org.au/linux.conf.au/2014/Thursday/87-Writing_your_first_web_app_using_Python_and_Flask_-_Danielle_Madeley.mp4
21. fo fakipr Fak rne_epae
rm ls mot ls, edrtmlt
fo faketwfipr Fr
rm ls.x.t mot om
fo wfrsipr TxFed
rm tom mot etil
casRgFr(om:
ls eoomFr)
"" sml rg fr""
"A ipe eo om"
eal=TxFed'mi'
mi
etil(Eal)
@p.ot(/eitr,mtos(GT,'OT)
aprue'rgse' ehd='E' PS')
dfgtrgse(:
e e_eitr)
""adetergsrto fr""
"Hnl h eitain om"
fr =RgFr(
om
eoom)
i fr.aiaeo_umt)
f omvldt_nsbi(:
rtr "ucs"
eun Sces
rtr rne_epae'epaehm' fr=om
eun edrtmlt(tmlt.tl, omfr)
i _nm_ = '_an_:
f _ae_ = _mi_'
apsce_e ='HSI RAL SCE'
p.ertky
TI S ELY ERT
aprndbgTu)
p.u(eu=re
22. fo faketwfipr Fr
rm ls.x.t mot om
fo wfrsipr TxFed vldtr
rm tom mot etil, aiaos
casRgFr(om:
ls eoomFr)
"" sml rg fr""
"A ipe eo om"
eal=TxFed'mi'
mi
etil(Eal
vldtr=vldtr.aaeu
aiaos(aiaosDtRq
vldtr.mi()
aiaosEal)
23. <ommto=ps"
fr ehd"ot>
{ fr.idntg)} { frCR. iprat #
{ omhde_a( } # o SF. motn! }
{ fr.mi.ae }
{ omeallbl }
{ fr.mi }
{ omeal }
{ i fr.mi.ros%
% f omealerr }
<l
u>
{ frerri fr.mi.ros%
% o ro n omealerr }
<i{ err}<l>
l>{ ro }/i
{ edo %
% nfr }
<u>
/l
{ edf%
% ni }
<nu tp=sbi"
ipt ye"umt>
<fr>
/om
25. fo faketsllhm ipr SLlhm
rm ls.x.qacey mot QAcey
d =SLlhm(p)
b
QAceyap
casUe(bMdl:
ls srd.oe)
"" ue i m dtbs""
"A sr n y aaae"
_tbeae_='sr'
_alnm_
ues
i =d.ound.nee,piaykyTu)
d
bClm(bItgr rmr_e=re
#..
.
26. i _nm_ = "_an_:
f _ae_ = _mi_"
apcni[SLLHM_AAAEUI]=
p.ofg'QACEYDTBS_R'
'otrsl/uenm:asodlclotma
psgeq:/sraepswr@oahs/y
aprndbgTu)
p.u(eu=re
30. fo fakipr Fak
rm ls mot ls
fo faketsrp ipr Mngr
rm ls.x.cit mot aae
ap=Fak_nm_)
p
ls(_ae_
mngr=Mngrap
aae
aae(p)
i _nm_ = '_an_:
f _ae_ = _mi_'
mngrrn)
aae.u(
31. redaoler htiw gnitratseR
ptth no gninnuR
revresnur yp tini nohtyp
tixe dna egassem pleh siht wohs
pleh
h
stnemugra lanoitpo
nur ppa e i revres tnempoleved ksalF eht snuR
revresnur
txetnoc noitacilppa ksalF edisni llehs nohtyP a snuR
llehs
revresnur llehs
stnemugra lanoitisop
revresnur llehs
h yp tini
egasu
yp tini nohtyp
32. fo fakipr Fak
rm ls mot ls
fo faketmgaeipr Mgae Mgaeomn
rm ls.x.irt mot irt, irtCmad
fo faketsrp ipr Mngr
rm ls.x.cit mot aae
fo faketsllhm ipr SLlhm
rm ls.x.qacey mot QAcey
ap=Fak_nm_)
p
ls(_ae_
mngr=Mngrap
aae
aae(p)
d =SLlhm(p)
b
QAceyap
mgae=Mgaeap d)
irt
irt(p, b
mngradcmad'b,Mgaeomn)
aae.d_omn(d' irtCmad
46. fo fakipr Rsos,sra_ihcnet
rm ls mot epne temwt_otx
@p.ot(/vnssra'
aprue'eet/tem)
dfgteet(:
e e_vns)
""eunasra o eet""
"Rtr
tem f vns"
@temwt_otx
sra_ihcnet
dfgnrt(:
e eeae)
""
"
Agnrtrta rtrsasnl JO-noe
eeao ht eun
ige SNecd
eet floe b a epyln.
vn, olwd y n mt ie
""
"
wieTu:
hl re
yedgteet)
il e_vn(
rtr Rsos(eeae)
eun epnegnrt(,
mmtp=tx/vn-tem)
ieye'eteetsra'
57. yp.tsetfnoc/stset
ipr pts
mot yet
fo wbp ipr (p a fakap
rm eap mot ap s ls_p,
d a fakd)
b s ls_b
@yetfxuesoe'eso'
pts.itr(cp=ssin)
dfd(:
e b)
""e u tedtbs""
"St p h aaae"
fakapcni[TSIG]=Tu
ls_p.ofg'ETN'
re
fakapcni[SLLHM_AAAEUI]=..
ls_p.ofg'QACEYDTBS_R'
.
fakd.rpal)
ls_bdo_l(
fakd.raeal)
ls_bcet_l(
rtr fakd
eun ls_b
@yetfxuesoe'eso'
pts.itr(cp=ssin)
dfapd)
e p(b:
""e u teFakts cin""
"St p h ls et let"
rtr fakapts_let)
eun ls_p.etcin(
58. yp.sweiv_tset/stset
""
"
apadd aeaalbei tets soe
p n b r vial n h et cp
""
"
dfts_ne(p)
e etidxap:
""etIcngtteidxpg""
"Ts
a e h ne ae"
r =apgt''
v
p.e(/)
pitr.aa
rn vdt
asr 'tte'i r.aa
set <il> n vdt
62. yp.putes
ipr o
mot s
fo stpol ipr stp fn_akgs
rm eutos mot eu, idpcae
POETRO =o.nio.e(OESITRP_I'
RJC_OT
sevrngt'PNHF_EODR,
o.ahdraeo.ahasah_fl_))
spt.inm(spt.bpt(_ie_)
wt oe(spt.onPOETRO,'eurmnstt) a fl_
ih pno.ahji(RJC_OT rqieet.x') s ie:
rqieet =[e.ti( frrqi fl_xedie(]
eurmns
rqsrp) o e n ie.ralns)
stpnm=eape,
eu(ae'xml'
vrin'.'
eso=00,
ato=Dnel Mdly,
uhr'aile aee'
ato_mi=dnel@aee.da'
uhreal'ailemdlyi.u,
ul'tp:/ihbcmdnilnxcn-ufaktt'
r=hts/gtu.o/an/iu-ofa-ls-ue,
dsrpin'xml dpo t OeSit,
ecito=Eape ely o pnhf'
isalrqie=eurmns
ntl_eursrqieet,
)
63. yp.noitacilppa/igsw
ipr o
mot s
ipr ss
mot y
#adlclcd
d oa oe
sspt.pedo.ahji(sevrn'PNHF_EODR])
y.ahapn(spt.ono.nio[OESITRP_I')
#iiils vrulevrnet
ntaie ita niomn
vrev=o.nio[OESITHMDR]+'yhn27vrev'
itn
sevrn'PNHF_OEI'
pto-./itn/
o.nio[PTO_G_AH' =o.ahji(itn,'i/yhn./iep
sevrn'YHNEGCCE]
spt.onvrev lbpto27st-a
vruln =o.ahji(itn,'i/ciaeti.y)
itaev
spt.onvrev bnatvt_hsp'
ty
r:
eefl(itaev dc(_ie_vruln)
xcievruln, it_fl_=itaev)
ecp IErr
xet Oro:
ps
as
#ipr adcniueWG apiain
mot n ofgr SI plcto
fo wbp ipr apa apiain
rm eap mot p s plcto