zoukankan      html  css  js  c++  java
  • python基础语法_学习笔记(七) _接口开发和程序分开目录

    一、接口开发

      1.mock接口开发

        a.没有模拟好的接口,可以模拟它

        b.给别人提供数据

      2.flask功能和格式

        a.flask 是一个轻量级框架,可以使用它实现一个网站或者web服务。

        b.首先要先安装第三方模块flask ,再引用

          pip install flask

        c.用flask开发接口的流程:

        (1).定义一个server

          server=flask.Flask(__name__) #__name__代表当前的python文件。把当前的python文件当做一个服务启动

         (2).然后定义接口函数,一般函数和接口函数的区别在于,定义为接口的函数上方要特别加上:

            @server.route('/index',methods=['get','post']) #第一个参数就是路径,第二个参数支持的请求方式,不写的话默认是get

            

         (3).执行server

           server.run(port=8888,debug=True,host='0.0.0.0')   #  host不写,默认的是本地地址127.0.0.1,只能自己访问,如果host='0.0.0.0',则可以其他电脑访问,并且地址是你电脑的ip地址

          #port可自定义填写。不要与机器上已占用的port冲突。

          #debug=True,在代码进行修改后,程序会自动重新加载,不用再次运行。也就是运行一次即可,即使改动代码,也不需要重启服务

           #host本地ip地址,写0.0.0.0,可以让其他人直接访问本机的ip。

          #最终这个接口的访问地址就是  http://127.0.0.1/index  ,get方法或者post方法都可。返回数据是json格式res内容

            例如:          

    import flask,json
    server = flask.Flask(__name__)
    
    @server.route('/login')
    def welcome():
        data = {'code':0,'msg':'登陆成功','session_id':'dkshfalfhsadlfl'}
        return json.dumps(data,ensure_ascii=False)
    
    server.run(port=8888,debug=True)  # 5000,debug=Ture ,服务器重启,自动重启

          在浏览器或者postman中访问接口的结果是:

          

      3.flask写get接口,参数是字符串/args  

    import flask,json
    server = flask.Flask(__name__)
    
    @server.route('/urldata')
    def urldata():
        msg = flask.request.args.get('name')
        pw = flask.request.args.get('pw')
        data = {'msg':msg,'pw':pw}
        return json.dumps(data,ensure_ascii=False)
    
    server.run(port=8888,debug=True) 

      在浏览器中访问接口:

        

      4.flask写post接口,参数是values和args 

        args参数是在postman 中的Param中或者在路径中加?参数    如:   

        values参数是在body中的from-data中  如: 

    import flask,json
    server = flask.Flask(__name__)
    
    @server.route('/post',methods=['post']) # post请求
    def post():
        name = flask.request.args.get('name')
        pw = flask.request.args.get('pw')
    
        # k-v,form-data 里面得参数
        stu_name = flask.request.values.get('stu_name')
        addr = flask.request.values.get('addr')
        data = {'username':name,'password':pw,'stu_name':stu_name,'addr':addr}
        return json.dumps(data,ensure_ascii=False)
    
    server.run(port=8888,debug=True)

       在postman中请求接口,结果如下:

           

       5.flask中写post接口,参数是json

        

    import flask,json
    server = flask.Flask(__name__)
    
    @server.route('/add_stu2',methods=['post']) # post请求
    def add_stu2():
        if flask.request.is_json:
            stu_name = flask.request.json.get('stu_name')
            age = flask.request.json.get('age')
            sex = flask.request.json.get('sex')
            addr = flask.request.json.get('addr')
            phone = flask.request.json.get('phone')
            stu_class = flask.request.json.get('stu_class')
            return json.dumps('添加成功',ensure_ascii=False)
        else:
            return  json.dumps('请传入json',ensure_ascii=False)
    
    server.run(port=8888,debug=True)

      在postman中执行的结果是:

        

      6.flask 写post接口,上传文件

    import flask,json
    server = flask.Flask(__name__)
    
    @server.route('/file',methods=['post']) # post请求
    def uploadFile():
        file = flask.request.files.get('f')
        print('filename',file.filename)
        file.save(file.filename)
        return json.dumps('上传完成',ensure_ascii=False)
    
    server.run(port=8888,debug=True) 

      用postman访问接口,结果如下:

        

      

  • 相关阅读:
    #动态规划 0-1背包问题空间复杂度优化
    #动态规划 0-1背包问题思路概述
    #动态规划 LeetCode 337 打家劫舍 III
    #动态规划 LeetCode 213 打家劫舍 II
    #动态规划 LeetCode 198 打家劫舍
    #动态规划 LeetCode 63 不同路径 II
    #动态规划 LeetCode 62 不同路径
    #动态规划 LeetCode 279 完全平方数
    #动态规划 LeetCode 343 整数拆分
    #动态规划 LeetCode 64 最小路径和
  • 原文地址:https://www.cnblogs.com/coldMoon0915/p/10913683.html
Copyright © 2011-2022 走看看