python 4 框架
一 异步非阻塞IO的Tornado框架
下载 pip3 install tornado
第一个例子:
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello, world')
def make_app():
return tornado.web.Application([
(r"/", MainHandler)
])
if __name__ == '__main__':
app = make_app()
app.Listen(8888)
tornado.ioloop.Ioloop.current().start()
访问:localhost:8888
1 GET方式获取请求参数:
import tornado.ioloop
import tornado.web
class zi(tornado.web.RequestHandler):
def get(self, uID):
self.write('Hello, world%s'%uID)
app = tornado.web.Application([
(r"/([0-9]+)", zi),
], deBUG=True)
if __name__ == '__main__':
app.Listen(8888)
tornado.ioloop.Ioloop.instance().start()
2 POST请求
import tornado.ioloop
import tornado.web
HTML_txt = """
<!DOCTYPE HTML>
<HTML lang="en">
<head>
<Meta charset="UTF-8">
<Meta name="vIEwport" content="wIDth=device-wIDth, initial-scale=1.0">
<Title>document</Title>
</head>
<body>
<h2>收到GET请求</h2>
<form method="post">
<input type="text" name='name' placeholder="请输入你的名字">
<input type="submit" value="发送post请求">
</form>
</body>
</HTML>
"""
class zi(tornado.web.RequestHandler):
def get(self):
self.write(HTML_txt)
def post(self):
name = self.get_argument('name', default='匿名', strip=True)
self.write(name)
app = tornado.web.Application([
(r"/get", zi),
], deBUG=True)
if __name__ == '__main__':
app.Listen(8888)
tornado.ioloop.Ioloop.instance().start()
3 使用cookie
import tornado.ioloop
import tornado.web
import tornado.escape
class aaaa(tornado.web.RequestHandler):
def get(self):
self.set_cookie('odn_cookie', tornado.escape.url_escape('未加密的cookie串'))
self.set_secure_cookie('scr_cookie', '加密SCURE_cookie串')
self.write('<a href="/shcook">查看设置的cookie</a>')
class shcookHdl(tornado.web.RequestHandler):
def get(self):
odn_cookie = tornado.escape.url_unescape(self.get_cookie('odn_cookie'))
scr_cookie = self.get_secure_cookie('scr_cookie').decode('utf-8')
self.write("不安全的%s 安全的%s"%(odn_cookie, scr_cookie))
app = tornado.web.Application([
(r"/sscook", aaaa),
(r"/shcook", shcookHdl),
], cookie_secret='abcdddd')
if __name__ == '__main__':
app.Listen(8888)
tornado.ioloop.Ioloop.instance().start()
三 轻量级Web应用框架Flask
1 开始使用Flask框架
不同URL映射到同一函数
import flask
app = flask.Flask(__name__)
@app.route('/')
@app.route('/aaa')
def helo():
return '你好,这是第一个Flask程序'
if __name__ == '__main__':
app.run()
2 使用get请求获取URL参数
import flask
HTML_txt = '''
<!DOCTYPE HTML>
<HTML lang="en">
<head>
<Meta charset="UTF-8">
<Meta name="vIEwport" content="wIDth=device-wIDth, initial-scale=1.0">
<Title>document</Title>
</head>
<body>
<h2>如果收到了GET请求</h2>
<form method="post">
<input type="submit" value="提交">
</form>
</body>
</HTML>
'''
app = flask.Flask(__name__)
@app.route('/aaa', methods=['GET', 'POST'])
def helo():
if flask.request.method == 'GET':
return HTML_txt
else:
return '我司收到POST请求'
if __name__ == '__main__':
app.run()
3使用session和cookie
import flask
HTML_txt = '''
<!DOCTYPE HTML>
<HTML lang="en">
<head>
<Meta charset="UTF-8">
<Meta name="vIEwport" content="wIDth=device-wIDth, initial-scale=1.0">
<Title>document</Title>
</head>
<body>
<h2>如果收到了GET请求</h2>
<a href="/get_xinxi">单击我获取cookie信息</a>
</body>
</HTML>
'''
app = flask.Flask(__name__)
@app.route('/set_xinxi/<name>')
def set_cks(name):
name = name if name else 'anonymous'
resp = flask.make_response(HTML_txt)
resp.set_cookie('name', name)
return resp
@app.route('/get_xinxi')
def get_cks():
name = flask.request.cookies.get('name')
return '获取的cookie信息:' + name
if __name__ == '__main__':
app.run(deBUG=True)
文件上传
<h2>请选择一个文件上传</h2>
<form method="post" enctype="multipart/form-data">
<input type="@R_502_6852@" name="@R_502_6852@">
<input type="submit" value="提交">
</form>
import flask
app = flask.Flask(__name__)
@app.route('/upload', methods=['GET', 'POST'])
def upload():
if flask.request.method == 'GET':
return flask.render_template('upload.HTML')
else:
@R_502_6852@ = flask.request.@R_502_6852@s['@R_502_6852@']
if @R_502_6852@:
@[email protected](@R_502_6852@.@R_502_6852@name)
return '上传成功'
else:
return '上传失败'
if __name__ == '__main__':
app.run(deBUG=True)
总结
以上是内存溢出为你收集整理的python 4 框架全部内容,希望文章能够帮你解决python 4 框架所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)