python轻量级web开发框架Flask学习使用

        由于工作的需要,需要学习web服务的相关知识,这里我常用的开发语言是python,查了一下比较火的框架就是Flask了,看文档和相关的介绍应该也是比较好上手的,比较符合项目的应用性特点。

       Flask的官网文档在这里,讲的也还不错,有入门级的例子可以直接拿过来学习使用

       下面是今天的一些实践内容,里面都有注释就不多解释了:

    

#!usr/bin/env python
# encoding:utf-8

import sys
import pymysql
from flask import Flask
from flask import request,jsonify

app=Flask(__name__)
reload(sys)
sys.setdefaultencoding("utf-8")


#数据库连接的相关配置信息
config_dict={
            'user':'你的数据库用户名',
            'password':'密码',
            'host':'数据库地址',
            'database':'数据库名'  
            }



def select_records(config_dict,tablename):
    '''
    从指定表中选取记录
    '''
    result=[]
    try:
        connect=pymysql.connect(**config_dict)
        cursor=connect.cursor()
        select_sql="SELECT * FROM %s" % tablename
        print 'select_records sql is: ',select_sql
        cursor.execute(select_sql)
        row=cursor.fetchone()
        while row:
            result.append(row)
            row=cursor.fetchone()
    except Exception,e:
        print "select_records sql error: ",e
    finally:
        connect.close()
    print 'Record_length: ',len(result)
    return result


@app.route("/")
def init():
    return "Hello,init database!"


@app.route("/get", methods=["GET"])
def get_content():
    '''
    GET 操作
    '''
    if request.method=="GET":
        scores=float(request.args['score'])
        nums=int(request.args['num'])
    IP_list=select_records(config_dict,tablename='validips')
    result=[]
    for one_list in IP_list:
        if one_list[-1]>=scores:
            result.append(one_list[0])
    return jsonify({'IP':result[:nums]})




if __name__ == "__main__":
    app.run(debug=True)

         这段程序的功能是从我本地的数据库中选取指定的信息返回。

         首先,我们看一下启动,任何Flask项目都需要先初始化一个app对象,里面的参数一般都会填写python中的: __name__

         app=Flask(__name__)

        一句话就完成了APP对象的创建和初始化工作。

        在命令行中启动后,结果如下图:

         

        之后,我们可以打开浏览器输入:http://localhost:5000/  可以查看初始化函数的返回结果如下图:

        python轻量级web开发框架Flask学习使用_第1张图片

        此时,命令行窗口输出结果如图:

        python轻量级web开发框架Flask学习使用_第2张图片

         证明有一次请求操作已经完成了。

         接下来测试一下GET操作,获取数据库中的内容信息,其中,我指定了score和num两个参数,score是表示ip的分值,num是表示我要返回的ip的数量,在浏览器里面输入:

        http://localhost:5000/get?score=2.0&num=10

         回车结果如下图:

         python轻量级web开发框架Flask学习使用_第3张图片

       此时,命令行窗口如下图:

       python轻量级web开发框架Flask学习使用_第4张图片

       输出信息告诉我们:GET请求已经完成了。

        这些还是感觉还是很有意思,项目中的一些需求需要在后期发布称web服务,flask会是一个不错的选择,但是当业务量很大的时候,这样的单线程效率肯定是跟不上了,到时候异步、并发等机制也会相应地考虑进来了。

你可能感兴趣的:(编程技术)