web.py session學習:html
import web
from web import formweb
urls = (
'/','Index',
'/test','Test',
'/login','Login',
'/logout','Logout',
)瀏覽器
render = web.template.render(".")cookie
allowed = (
('admin','123123'),
)session
web.config.debug = False
app = web.application(urls, locals())
session = web.session.Session(app, web.session.DiskStore('sessions'))app
class Index:
def GET(self):
if session.get('logged_in',False):
return '<h1>Login Success!!!</h1><a href="/test">test</a></br><a href="/logout">Logout</a>'
raise web.seeother('/login')學習
class Login:
def GET(self):
return render.login()
def POST(self):
i = web.input()
username = i.get('username')
passwd = i.get('passwd')
if (username,passwd) in allowed:
session.logged_in = True
web.setcookie('system_mangement', '', 60)
raise web.seeother('/')
else:
return '<h1>Login Error!!!</h1></br><a href="/login">Login</a>'url
class Logout:
def GET(self):
session.logged_in = False
raise web.seeother("/login")debug
class Test:
def GET(self):
if session.get('logged_in',False):
return '<h1> test login success!!!</h1></br><a href="/logout">Logout</a>'
return '<h1>logout now</h1></br><a href="/login">Login</a>'code
if __name__ == '__main__':
app.run()
結果有:
GET http://localhost:8080/
Remote Address:127.0.0.1:8080
Request URL:http://localhost:8080/
Request Method:GET
Status Code:303 See Other
Response Headers
view source
Content-Type:text/html
Date:Fri, 07 Apr 2017 15:30:27 GMT
Location:http://localhost:8080/login
Server:localhost
Set-Cookie:webpy_session_id=c0544ca962c24b92577c1468251ff66e6d6dcc2a; Path=/; httponly
Transfer-Encoding:chunked
Request Headers
view source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive #正常狀況下第一次請求是沒有cookie的
Host:localhost:8080
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
瀏覽器會自動重定向
GET http://localhost:8080/login
Gereral:
Remote Address:127.0.0.1:8080
Request URL:http://localhost:8080/login
Request Method:GET
Status Code:200 OK
Response Headers
view source
Content-Type:text/html; charset=utf-8
Date:Fri, 07 Apr 2017 15:30:27 GMT
Server:localhost
Set-Cookie:webpy_session_id=c0544ca962c24b92577c1468251ff66e6d6dcc2a; Path=/; httponly
Transfer-Encoding:chunked
Request Headers
view source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Cookie:webpy_session_id=c0544ca962c24b92577c1468251ff66e6d6dcc2a
Host:localhost:8080
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
輸入用戶名密碼:POST http://localhost:8080/login {‘username’:admin,'passwd':123123}Gereral: Remote Address:127.0.0.1:8080 Request URL:http://localhost:8080/login Request Method:POST Status Code:303 See OtherResponse Headers view source Content-Type:text/html Date:Fri, 07 Apr 2017 15:33:48 GMT Location:http://localhost:8080/ Server:localhost Set-Cookie:system_mangement=; expires=Fri, 07 Apr 2017 15:34:48 GMT; Path=/ Set-Cookie:webpy_session_id=c0544ca962c24b92577c1468251ff66e6d6dcc2a; Path=/; httponly Transfer-Encoding:chunkedRequest Headers view source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip, deflate Accept-Language:zh-CN,zh;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Content-Length:28 Content-Type:application/x-www-form-urlencoded Cookie:webpy_session_id=c0544ca962c24b92577c1468251ff66e6d6dcc2a Host:localhost:8080 Origin:http://localhost:8080 Referer:http://localhost:8080/login Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36Form Data username:admin passwd:123123