最近研究了一下python的django框架, 发现这个框架不比Java spring boot差, mock同样一个接口, 代码量少很多, 维护起来也很方便, 废话不多说,直接上代码

1. 安装django: pip install django

2. 创建项目: django-admin startproject postdemo

3. 启动项目: python manage.py runserver 0.0.0.0:8001

启动Django项目就这么简单, 三步完成, O(∩_∩)O

postdemo 包下创建views.py

 from django.http import HttpResponse

 from .utils import process_parameters, validate_parameters, read_response

 def postdemo(request):
if request.method == 'POST':
dic_params = process_parameters(request.body.decode('utf-8')) # 一定要用utf-8解码,不然传入的是bytes类型b'body'
if validate_parameters(dic_params):
result = read_response()
res = HttpResponse(result)
# res.__setitem__("resultcode", '0') # 用这个也OK, __setitem__可以修改默认的header, 比如Content-Type, setdefault不行
res.setdefault('resultcode', '')
res.setdefault('msg', 'no error')
return res
else:
return HttpResponse('error username or password!')
else:
return HttpResponse('error method!')

postdemo 包下创建utils.py, 定义业务逻辑方法, 采用函数式编程也可以

 import configparser
import json def read_config():
config = configparser.ConfigParser()
dic = {}
config.read("./config.ini", encoding="utf8")
config.sections()
dic["username"] = config.get("login", "username")
dic["password"] = config.get("login", "password")
return dic def read_response():
config = configparser.ConfigParser()
dic = {}
config.read("./config.ini", encoding="utf8")
config.sections()
dic["nickname"] = config.get("response_data", "nickname")
dic["sex"] = config.get("response_data", "sex")
dic["age"] = config.get("response_data", "age")
dic["status"] = config.getint("response_data", "status")
dic["uid"] = config.get("response_data", "uid")
return json.dumps(dic, ensure_ascii=False) def process_parameters(body):
try:
body_dic = {}
key_values = str(body).split("&")
for key_value in key_values:
body_dic[key_value.split("=")[0]] = key_value.split("=")[1]
return body_dic
except Exception as e:
return e def validate_parameters(body):
if isinstance(body, dict):
dic_config = read_config()
if dic_config["username"] == body["username"] and dic_config["password"] == body["password"]:
return True
else:
return False

postdemo包平级目录创建配置文件config.ini

[login]
username=123456789@qq.com
password=123456 [response_data]
nickname=旦增尼玛
sex=1
age=18
status=1
uid=123456789

默认文件urls.py, 添加path

 from django.contrib import admin
from django.urls import path from . import views urlpatterns = [
path('admin/', admin.site.urls),
path('postdemo', views.postdemo),
]

默认文件setting.py, 注释掉中间件的csrf安全验证, 其他默认

 MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

到这里就完了, 一个简单的post 接口就完成了, 如果还有进行cookie等校验, 完善utils.py业务处理逻辑即可, 启动项目

基于Python Django开发的一个mock的更多相关文章

  1. 基于Python+Django的Kubernetes集群管理平台

    ➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...

  2. Python+django开发环境搭建

    Python目前主版本有2个,2.7+和3.4+ 新入手,决定还是从2.7开始 先从python官网https://www.python.org/下载python2.7.10,64位版本(这里注意,选 ...

  3. pycharm环境下用Python+Django开发web搭建

    1.安装pycharm: 2.安装Python: 3.安装mysql: 4.安装Django; pip3 install django 5.创建Django工程命令方式: # 创建Django程序 d ...

  4. 使用 Visual Studio Code(VSCode)搭建简单的 Python + Django 开发环境

    写在前面的话 作为有个 Python 菜逼,之前一直用的 Pycharm,但是在主题这一块怎么调整都感觉要么太骚,看起来不舒服,要么就是简直不能看.似乎用大 JB 公司 IDE 的人似乎都不怎么重视主 ...

  5. 利用基于Python的Pelican打造一个自己的个人纯静态网站

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_100 其实呢这么多年以来我一直建议每个有技术追求的开发者都要有写技术博客记笔记的良好习惯,一来可以积累知识,二来可以帮助别人,三来 ...

  6. Python Django开发遇到的坑(版本不匹配)

    这个问题 进入django 后台, 添加,修改都不可以,只有删除可以,那么百分之百是这个问题 对照一下,是你的django 版本低了还是 python版本高了,对照的话就没问题了 这个坑,弄了两天啊! ...

  7. 基于Spring Boot框架开发的一个Mock

    背景:在项目后端接口开发还未完成,我们无法进行自动化接口用例的调试,希望与开发同步完成接口自动化用例的编写及调试,待项目转测后,可以直接跑自动化用例,提高测试效率. 选用的maven + Spring ...

  8. Python Django 开发 4 ORM

    第三篇最后写了,光知道那些基础的查询在项目中是没有什么卵用的,重点是实体关系映射(ORM),今天学习了,来记录一下,关键词:ForeignKey(多对一).OneToOneField(一对一).Man ...

  9. 7-4 python 接口开发(提供mock服务)

    1.登录接口开发(数据存在数据库中)  接口开发做mock(模拟功能) tools.py import pymysql def my_db(sql): conn = pymysql.connect(h ...

随机推荐

  1. bzoj3277-串

    Code #include<cstdio> #include<iostream> #include<cmath> #include<cstring> # ...

  2. 七、Java多人博客系统-2.0版本-docker部署

    docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...

  3. python代码格式

    1,函数名:不要大写,都用小写,单词之间用下划线分隔 2,注释:注释的时候#后面要带空格 3,方法与方法之间空格两行 4,使用方法时,里面的参数用  逗号和空格  隔开 5,使用方法时,里面的参数“= ...

  4. Hive 口袋手册

    2019-04-01 关键字:Hive 学习总结.Hive 基础 . Hive 进阶 .Hive 调优 . Hive 入门手册.Hive PDF 下载 本篇文章系本人就目前所掌握的知识对 Apache ...

  5. mysql 基本语句

    求知若渴 虚心若愚   博客园 首页 新随笔 联系 管理 随笔-391  文章-0  评论-7  mysql sql常用语句大全   SQL执行一次INSERT INTO查询,插入多行记录 inser ...

  6. docker-跨主机存储

    容器分类 从业务数据的角度看,容器可以分为两类:无状态(stateless)容器和有状态(stateful)容器. 无状态是指容器在运行过程中不需要保存数据,每次访问的结果不依赖上一次访问,比如提供静 ...

  7. Awesome CLI

    请移步https://github.com/zhuxiaoxi/awesome-online-tools 欢迎一同维护这个列表 jq JSON工具 shellcheck 更好用的Shell语法检查 c ...

  8. JS 防抖函数和节流函数

    文章转载自:木上有水 什么是防抖?什么是节流? 工作中我们经常会用一些方法监听某些事件的完成,比如scroll.resize.keyup等. 常规事件触发的时候,比如scroll,会在短时间内触发多次 ...

  9. 条件随机场(CRF)

    从宏观上讲,条件随机场就是给出一个序列 X = (x1, x2 ... xn) 得到 另一个序列 Y = (y1 , y2 ... yn). 这两个序列有着一些独特的特性,满足马尔可夫随机场,我理解的 ...

  10. 【转载】 C++之split字符串分割

    https://blog.csdn.net/mary19920410/article/details/77372828