Crossin的编程教室 --- Python 实战1

http://res.crossincode.com/wechat/someweb.html


sudo easy_install web.py
Searching for web.py
Reading https://pypi.python.org/simple/web.py/
Best match: web.py 0.40.dev0
Downloading https://pypi.python.org/packages/47/15/c011b80de6c2df69be46d6d79d063496dc901a53820e493de35e891fc904/web.py-0.40.dev0.tar.gz#md5=fb08cd2e36efde893987a75dc652f9e3
Processing web.py-0.40.dev0.tar.gz
Writing /tmp/easy_install-aVRQXO/web.py-0.40.dev0/setup.cfg
Running web.py-0.40.dev0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-aVRQXO/web.py-0.40.dev0/egg-dist-tmp-QWmtkQ
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py:285: UserWarning: Normalizing '0.40-dev0' to '0.40.dev0'
normalized_version,
zip_safe flag not set; analyzing archive contents...
web.application: module references __file__
web.debugerror: module references __file__
creating /Library/Python/2.7/site-packages/web.py-0.40.dev0-py2.7.egg
Extracting web.py-0.40.dev0-py2.7.egg to /Library/Python/2.7/site-packages
Adding web.py 0.40.dev0 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/web.py-0.40.dev0-py2.7.egg
Processing dependencies for web.py
Finished processing dependencies for web.py


python
Python 2.7.10 (default, Feb  7 2017, 00:08:15) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import web


import web

urls = ('/','index')

class index:
def GET(self):
return "Hello World!"


if __name__ == "__main__":
app = web.application(urls,globals())
app.run()


python code.py
http://0.0.0.0:8080/
127.0.0.1:52904 - - [11/Jul/2017 10:17:31] "HTTP/1.1 GET /" - 200 OK
127.0.0.1:52905 - - [11/Jul/2017 10:17:31] "HTTP/1.1 GET /favicon.ico" - 404 Not Found



 #python Address already in use 端口已经被占用的解决方法


ps -fA | grep python
501  1221   886   0 10:17上午 ttys000    0:00.44 python code.py
501  1288   886   0 10:33上午 ttys000    0:00.00 grep python


kill 1221

ps -fA | grep python
501  1292   886   0 10:34上午 ttys000    0:00.00 grep python



import web

urls = ('/','index')

movies = [
{
'title':'Forrest Gump',
'year':1994,
},
{
'title':'Titanic',
'year':1997,
}
]

class index:
def GET(self):
page = ''
for m in movies:
page += '%s (%d)\n' % (m['title'], m['year'])
return page


if __name__ == "__main__":
app = web.application(urls,globals())
app.run()


http://0.0.0.0:8080


Forrest Gump (1994)
Titanic (1997)


import web

urls = ('/','index')

render = web.template.render('templates/')

class index:
def GET(self):
return render.index()


if __name__ == "__main__":
app = web.application(urls,globals())
app.run()


<h1>Crossin's Movie Site</h1>


Crossin's Movie Site



import web

render = web.template.render('templates/')

urls = (
'/', 'index'
)

movies = [
{
'title': 'Forrest Gump',
'year': 1994,
},
{
'title': 'Titanic',
'year': 1997,
},
]

class index:
def GET(self):
return render.index(movies)

if __name__ == "__main__":
app = web.application(urls, globals())
app.run()



$def with (movies)
<h1>Crossin's Movie Site</h1>
$for movie in movies:
<li>
$movie['title'],$movie['year']
</li>


Crossin's Movie Site

Forrest Gump,1994
Titanic,1997


import web

db = web.database(dbn='sqlite',db='MovieSite.db')


render = web.template.render('templates/')

urls = (
'/', 'index'
)

class index:
def GET(self):
movies = db.select('movie')
return render.index(movies)

if __name__ == "__main__":
app = web.application(urls, globals())
app.run()




$def with (movies)
<h1>Crossin's Movie Site</h1>
$for movie in movies:
<li>
$movie['title'],$movie['year'],$movie['country'],$movie['abstract']
</li>

sqlite3 MovieSite.db

create table movie(title,year,country,abstract);

insert into movie values('aganzhengzhuan',1994,'meiguo','Life is like box of chocolates.');

insert into movie values('xiaoshenke',1994,'meiguo','Hope is a good thing.');





Crossin's Movie Site

aganzhengzhuan,1994,meiguo,Life is like box of chocolates.
xiaoshenke,1994,meiguo,Hope is a good thing.




import web

db = web.database(dbn='sqlite',db='MovieSite.db')


render = web.template.render('templates/')

urls = (
'/', 'index',
'/movie/(\d+)', 'movie',
)




class index:
def GET(self):
movies = db.select('movie')
return render.index(movies)

class movie:
def GET(self, movie_id):
movie_id = int(movie_id)
movie = db.select('movie', where='id=$movie_id', vars=locals())[0]
return render.movie(movie)


if __name__ == "__main__":
app = web.application(urls, globals())
app.run()



$def with (movie)
<h4><a href="/">返回首页</a></h4>
<h1>$movie.title</h1>
<hr>	
<p>年代$movie.year</p>
<p>国家$movie.country</p>
<p>$movie.abstract</p>


$def with (movies)
<h4>欢迎来到</h4>
<h1>Crossin's Movie Site</h1>
<hr>
<p>影片列表:</p>
$for movie in movies:
<li>
<a href="movie/$movie['id']">$movie['title']</a>
</li>





欢迎来到

Crossin's Movie Site

影片列表

aganzhengzhuan
ag22222anzhengzhuan



搜搜


import web

db = web.database(dbn='sqlite',db='MovieSite.db')


render = web.template.render('templates/')

urls = (
'/', 'index',
'/movie/(\d+)', 'movie',
)




class index:
def GET(self):
movies = db.select('movie')
return render.index(movies)

def POST(self):
data = web.input()
condition = r'title like "%' + data.title + r'%"'
movies = db.select('movie', where=condition)
return render.index(movies)

class movie:
def GET(self, movie_id):
movie_id = int(movie_id)
movie = db.select('movie', where='id=$movie_id', vars=locals())[0]
return render.movie(movie)


if __name__ == "__main__":
app = web.application(urls, globals())
app.run()





$def with (movies)
<h4>欢迎来到</h4>
<h1>Crossin's Movie Site</h1>
<hr>
<p>影片列表:</p>

<form action="/" method="post">
<input type="text" name="title" />
<input type="submit" value="搜索" />
</form>


$for movie in movies:
<li>
<a href="movie/$movie['id']">$movie['title']</a>
</li>













Loading Disqus comments...
Table of Contents