python 4 框架

python 4 框架,第1张

概述python4框架一异步非阻塞IO的Tornado框架下载pip3installtornado第一个例子: importtornado.ioloopimporttornado.webclassMainHandler(tornado.web.RequestHandler):  defget(self):    self.write('Hello,world')defmake_app():  return

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 框架所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1185511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存