【Django】Day6-接口

接口

一.编程语言里面的接口

1.Interface

接口在编程语言中指的是一个抽象类型,是抽象方法的集合;

它的特点如下:

  • 接口包含类要实现的方法,但是接口自己无法被实例化

  • 接口里的定义函数没有过程,且必须被继承的子类重写

  • 类通过继承接口的方式,来继承接口的抽象方法;

  • 类描述对象的属性和方法(实现接口的类,必须实现接口内所描述的所有方法,否则必须声明为抽象类);

总结:接口只定义规范,不负责具体实现(具体实现由具体的实现者完成)!

相当于一个接口有很多方法,这些方法都在这个接口里面被定义,但是这些方法的实现方式是另外的

2.Python中的Interface

python中的接口概念是借助第三方库来实现的,一般是Zope.interface

pip install zope.interface
  • demo
from zope.interface import Interface
from zope.interface.declarations import implementer

# 定义接口
class IHost(Interface):
    def goodmorning(self,host):
        """Say good morning to host"""

#继承接口
@implementer(IHost)
class Host:
    def goodmorning(self, guest):
        """Say good morning to guest"""
        return "Good morning, %s!" % guest

if __name__ == '__main__':
    p = Host()
    hi = p.goodmorning('Tom')
    print(hi)

二.开发系统的Web 接口

1.发布会添加接口
from django.http import JsonResponse
from blog.models import Event
from django.core.exceptions import ValidationError

# 添加发布会接口

def add_event(request):
    #接口入参
    eid = request.POST.get('eid', '')  # 发布会id
    name = request.POST.get('name', '')  # 发布会标题
    limit = request.POST.get('limit', '')  # 限制人数
    status = request.POST.get('status', '')  # 状态
    address = request.POST.get('address', '')  # 地址
    start_time = request.POST.get('start_time', '')  # 发布会时间

    # 参数为空校验
    if eid == ''or name == ''or limit == ''or status == ''or address == '' or start_time == '':
        return JsonResponse({'status': 10021, 'message': 'parameter error'})

    # id存在校验
    result = Event.objects.filter(id=eid)
    if result:
        return JsonResponse({'status': 10022, 'message': 'event id already exists'})

    #name存在校验
    result = Event.objects.filter(name=name)
    if result:
        return JsonResponse({'status': 10023, 'message': 'event 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值