zoukankan      html  css  js  c++  java
  • 使用flask开发网站后端

    Flask 是一个用于 Python 的微型网络开发框架,可以用于快速的搭建一个小型的网站。

    我的搜索引擎:http://www.abelkhan.com 就是基于flask开发

    一个flask的Hello World

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    if __name__ == '__main__':
        app.run()

    其中,app = Flask(__name__)创建的app对象就是我们的网站应用的实例。

    可以看到,Flask通过@修饰符,app.route实现了对url请求到函数接口的路由。

    也就是说,你如果在浏览器请求http://url.com/,通过app.route的作用,最终就会调用到hello_world。

    使用flask做文件服务器,和nginx不同,flask不能直接提供对文件的路由,

    而是需要用app.route实现对url的路由

    @app.route('/JSONError.js')
    def file_JSONError():
        from io import BytesIO
        try:
            return Response(BytesIO(globalv.res_data['JSONError.js']), mimetype='js')
        except:
            traceback.print_exc()

    并在对应得函数中,返回对应得文件内容。

    flask中的Response,就是对于的http请求中的的Request和Response

    包含如下信息:

    status 状态码,元数据

    status_code 只包含 code 的 status

    headers 头,元数据

    mimetype 去掉 charset 的 content type,如 application/json

    data body,元数据

    我们通过Response即可返回文件数据

    处理AJAX请求,也就是来至javascript的post的请求:

    js的请求如下:

        table_regchange.onclick=function() {
            var params = {"sid":sid};
            JSONRequest.post("http://abelkhan.com/changecheck", params,
                function (requestNumber, value, exception){
                    table_regcheck.innerHTML = value["check"];
                });
        };

    后端的响应代码:

    @app.route('/changecheck', methods=['POST'])
    def changecheck():
        try:
            from io import BytesIO
            r = on_get_check(request.get_json())
            rsp = Response(BytesIO(json.dumps(r)), mimetype='text/json')
            return rsp
        except:
            traceback.print_exc()

    这里是前端请求更换验证码,然后服务器返回新的验证码的代码,

    如此即可完成请求-响应的逻辑流程。

    开源的搜索引擎:http://www.abelkhan.com/
    欢迎大家围观!


    使用python编写了后端网络爬和前端网站



    项目地址:http://www.abelkhan.com/
    向我们提出意见:http://www.abelkhan.com/guestbook/
    对项目进行捐助:http://www.abelkhan.com/collection/
    代码托管地址如下:https://github.com/qianqians/websearch欢迎大家参与

  • 相关阅读:
    POJ-2386 Lake Counting
    白书-部分和问题
    STL-map/multimap 简述
    STL-set&&multiset 集合
    STL-优先级队列-priority_queue
    挣脱虚无,化身虚无
    C
    B
    A
    STL-list 链表
  • 原文地址:https://www.cnblogs.com/qianqians/p/5333320.html
Copyright © 2011-2022 走看看