Python学习笔记十五_开发接口

1、mock接口,模拟一些接口,在别的接口没有开发好的时候,你需要用它 假的支付接口,模拟支付成功

2、

3、查看数据,避免直接操作数据库flask web开发框架

  1. 实例化server
  2. 装饰器,下面的函数变为一个接口
  3. 启动服务
import flask,json
#__name__代表当前这个python文件
server = flask.Flask(__name__)#实例化server,把当前这个python文件,当做一个服务

def my_db(sql):
    import pymysql
    conn = pymysql.connect(
        host=‘127.0.0.1‘, user=‘root‘, passwd=‘123456‘,
        port=3306, db=‘data‘, charset=‘utf8‘)
    cur = conn.cursor() #建立游标
    cur.execute(sql)#执行sql
    if sql.strip()[:6].upper()==‘SELECT‘:
        res =  cur.fetchall()
    else:
        conn.commit()
        res = ‘ok‘
    cur.close()
    conn.close()
    return res

@server.route(‘/index‘,methods=[‘get‘])#装饰器,下面的函数变为一个接口
#method默认只有get,methods=[‘get‘,‘post‘]
def index():
    res = {‘msg‘:‘这是我开发的第一个接口‘,‘msg_code‘:0}
    # 返回状态码0,表示返回成功
    return json.dumps(res,ensure_ascii=False)
    #json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False

@server.route(‘/reg‘,methods=[‘post‘])#/reg接口路径
def ref():
    username = flask.request.values.get(‘username‘)#username是接口调用的key,即入参
    pwd = flask.request.values.get(‘passwd‘)#passwd是接口调用的key,即入参
    if username and pwd:
        sql = ‘select * from my_user where username = "%s";‘ % username
        if my_db(sql):
            res = {‘msg‘: ‘用户已存在‘, ‘msg_code‘: 2001}
            # 2001,以2开头都是跟用户有关的
        else:
            insert_sql = ‘insert into my_user(username,passwd,is_admin) VALUES ("%s","%s",0);‘ % (username, pwd)
            my_db(insert_sql)
            res = {‘msg‘: ‘注册成功‘, ‘msg_code‘: 0}
    else:
        res = {‘msg‘:‘必填字段未填,请查看接口文档‘,‘msg_code‘:1001}
        # 1001必填字段未填
    return json.dumps(res, ensure_ascii=False)

server.run(port=7788,debug=True)

原文地址:https://www.cnblogs.com/dongrui624/p/9022656.html

时间: 2024-08-07 11:18:58

Python学习笔记十五_开发接口的相关文章

python学习笔记十五 web框架

python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自己处理请求 基于wsgi(Web Server Gateway Interface WEB服务网关接口,实现socket功能),自己处理请求 如图示: 自己写的web框架 #!/usr/bin/env python #coding:utf-8 import socket def handle_req

Python学习笔记十六_模块结构调整

一.什么是模块结构调整 当一个脚本中有大量的配置.方法及接口时,脚本往往显得十分臃肿.为了代码更易读,可以将一个繁杂的脚本根据不同的功能放在不同的文件夹中分类管理,即模块结构调整. 二.模块结构调整实例 下面根据一个具体的例子来看一下如何拆分调整代码 1.根据正常人的思维写代码完成功能 代码需求: (1) 注册接口: (a) 写一个注册接口,密码存成密文 (b) 数据存到redis,redis的key用string类型 (c) Amy  7869d295e566295b51eec5d6bed67

python学习笔记十五 django基础

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1.创建django程序 通过命令行 django-admin startproject mysite 创建project 一个工程可以包含多个app,app共用一个project的配置文件 cd mysite python manage.py startapp app01 创建app01 pyt

python学习笔记(十五) - python连接mysql数据库

一. 安装mysql驱动: 由于mysql服务器以独立的进程运行,并通过网络对外服务,所以,需要支持python的mysql驱动来连接mysql服务器. 安装驱动:easy_install mysql-connector-python 二. 连接数据库: 下面演示使用python代码连接mysql: #!/usr/bin/env python # -*- coding: utf-8 -*- # utility @ Python # 导入MySQL驱动: import mysql.connecto

python学习笔记十五:日期时间处理笔记

#-*- coding: utf-8 -*- import datetime #给定日期向后N天的日期 def dateadd_day(days): d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days) return d3 #昨天 def getYesterday(): today = datetime.date.today() oneday = datetime.timedelta(days=1) yesterday =

python学习笔记(十五)-异常处理

money = input('输入多少钱:') months = input('还几个月:') try: res = calc(int(money),int(months)) except ZeroDivisionError as e: #try里面的代码如果出错了,走except里面的代码 traceback.print_exc()#只是输出报错的详细信息而已 print('还款的月数不能小于1',e) #months输入0时 except ValueError as e: print('输入

laravel3学习笔记(十五)

原作者博客:ieqi.net ==================================================================================================== 异常与日志 在应用中,我们总会遇到各种问题.各种异常,这时,记录异常发生时的状态就很重要,所以异常与日志是有着天然的关系的. 关于异常与日志的配置在文件 application/config/error.php 中. 文件中有四个配置项: 'ignore' => ar

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签",东西都是一样的.改变或者添加,复制出来的变量也会改变 样例: >>> a=[1,2,3] >>> b=a >>> a [1, 2, 3] >>> b [1, 2, 3] >>> a[1]=0 >>>