django添加REST_FRAMEWORK 接口浏览

1.安装rest_framework

pip install djangorestframework

 2.配置rest_framework

## 将rest_framework加入项目app列表
INSTALLED_APPS = [
     ‘rest_framework‘,
]

## 其他配置
# ======rest api======
REST_FRAMEWORK = {

    # Use Django‘s standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    # 自定义异常处理方法
    ‘EXCEPTION_HANDLER‘: ‘api_core.exception.api_exception_handler‘,
    # ‘EXCEPTION_HANDLER‘: ‘tennis_api.exception.api_exception_handler‘,

    # 全局权限控制
    ‘DEFAULT_PERMISSION_CLASSES‘: [
        # ‘rest_framework.permissions.DjangoObjectPermissions‘
        # ‘api_core.permission.AppApiPermission‘,
        ‘rest_framework.permissions.AllowAny‘,
        # ‘tennis_api.permission.AppApiPermission‘
    ],

    # 授权处理
    ‘DEFAULT_AUTHENTICATION_CLASSES‘: (
        ‘rest_framework.authentication.SessionAuthentication‘,
        ‘rest_framework.authentication.BasicAuthentication‘,
        # ‘rest_framework.authentication.TokenAuthentication‘,
        ‘api_core.authentication.ExpiringTokenAuthentication‘,
        # ‘tennis_api.authentication.ExpiringTokenAuthentication‘,
    ),

    # 全局级别的过滤组件,查找组件,排序组件
    ‘DEFAULT_FILTER_BACKENDS‘: (‘rest_framework.filters.SearchFilter‘, ‘rest_framework.filters.DjangoFilterBackend‘,
                                ‘rest_framework.filters.OrderingFilter‘,),
    # 分页每页大小
    ‘PAGE_SIZE‘: 5,
    ‘DEFAULT_PARSER_CLASSES‘: (
        ‘rest_framework.parsers.JSONParser‘,
        ‘rest_framework.parsers.FormParser‘,
    ),
    ‘DEFAULT_RENDERER_CLASSES‘: (
        ‘rest_framework.renderers.JSONRenderer‘,
        ‘rest_framework.renderers.BrowsableAPIRenderer‘,
    )
}

 3.urls.py配置

urlpatterns = [
    # 接口浏览登录
    url(r‘^api-auth/‘, include(‘rest_framework.urls‘,
                               namespace=‘rest_framework‘)),
]

 4.应用

## 引入rest_framework装饰器
from rest_framework.decorators import api_view
@csrf_exempt
@require_customer_login
@api_view(["GET", "POST", "REQUEST"])
def user_address_list(request):
    """
    获取用户地址列表
    请求参数:
    {
     # 要求用户登录
    }
    返回数据:{
    "code": code,  # 业务状态:1为成功0为失败
    "data": {
    "address_list": [
    {
    "id",
    "is_default",   # 是否默认地址
     "customer_name", # 客户名称
     "phone_no", # 手机号
     "province__province_name", # 省份名称
      "province_id", # 省份ID
      "city__city_name",  # 城市名
      "city_id", # 城市ID
      "district__district_name", # 县乡名
      district_id",  # 县乡ID
      "address" # 用户地址信息
    }],
    for_select: False # 是否下单中
    },
    "message": ""
    }
    """
    curr_customer = get_current_customer()
    if curr_customer is None:
        return {"code": constants.RESULT_NOT_LOGIN, "message": u"您还未登陆"}

    # 地址
    customer_address = CustomerAddress.objects.filter(customer_id=curr_customer.id, available=True,
                                                      deleted=False).values("id", "is_default",
                                                                            "customer_name", "phone_no",
                                                                            "province__province_name",
                                                                            "province_id",
                                                                            "city__city_name", "city_id",
                                                                            "district__district_name",
                                                                            "district_id",
                                                                            "address")
    address_list = []
    if customer_address:
        address_list = list(customer_address)

    data_dict = {‘address_list‘: address_list, "for_select": False}
    if emall_constants.SESSION_VSHOP_ADD_ORDER_INFO in request.session:
        data_dict[‘for_select‘] = True

    return Response({"code": constants.RESULT_SUCCESS, "data": data_dict, "message": ""})

原文地址:https://www.cnblogs.com/konglingxi/p/9435723.html

时间: 2024-10-03 23:03:55

django添加REST_FRAMEWORK 接口浏览的相关文章

【网络开发】WeX5的Ajax和Django服务器json接口对接跨域问题解决

问题背景 WeX5是典型的html5+js架构.源文件全部放到服务器的UI Server中,使用通用的tomcat,例如使用域名www.wuyoubar.cn:8080/x5. Android和IOS的服务器端Django已经实现了json的处理,json的主域名www.wuyoubar.cn:80 PC访问WeX5页面.避免重复进行数据处理,WeX5的JS代码里面直接使用Ajax请求Django的json接口数据.这样就出现了跨域的问题,对于客户端来说,请求的源码,页面文件,css和js代码等

初识Django —Python API接口编程入门

初识Django -Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言,基于Django框架,利用MVC模型,实现后台方面的针对数据库的API开发.先了解一下互联网的WEB架构, 如上图: 互联网的WEB架构大致分为三层,web层.app层和数据库层.Web层:如apache网站服务器:app层主要是应用业务:DB指后台数据库.随着互联网的高速发展,网站访问量的增长.数

python3.8.0 Django 开发后端接口api 部署到 Linux Centos7上

经历了两天的时候终于把本地使用python3 django开发的接口API部署到服务器上了,还是记录一下,以免之后忘记,哈哈 注意一点,就是,centos7是基于python2的,我这边默认的是python2.7.5,记住不要删除了python2,否则后果很严重,yum会报错,这是因为python3和python2版本的冲突导致的 第一步,安装 python3 到 Centos7, 先安装软件管理包和可能使用的依赖 yum -y groupinstall "Development tools&q

微信jssdk批量添加卡券接口

1)首先是官方接口文档: 1.批量添加卡券接口:https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.08619731531288366&token=&lang=zh_CN#wxkq3 : 2.卡券扩展字段cardExt说明:https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.08619731531288366&t

玩转Windows服务系列——给Windows服务添加COM接口

当我们运行一个Windows服务的时候,一般情况下,我们会选择以非窗口或者非控制台的方式运行,这样,它就只是一个后台程序,没有界面供我们进行交互. 那么当我们想与Windows服务进行实时交互的时候,我们应该怎么做呢? 快速给Windows服务添加实时交互功能的方案 Windows服务是一个进程,而我们用于交互的程序,又是另外一个进程.我们与Windows服务实时交互,其实就是一个进程间通信的问题.所有的进程间通信的方案基本上都适用于实时交互的方案,比如Socket.共享内存.管道.COM等.

【博客美化】08.添加"扩大/缩小浏览区域大小" 按钮

博客园美化相关文章目录: [博客美化]01.推荐和反对炫酷样式 [博客美化]02.公告栏显示个性化时间 [博客美化]03.分享按钮 [博客美化]04.自定义地址栏logo [博客美化]05.添加GitHub链接 [博客美化]06.添加QQ交谈链接 [博客美化]07.添加打赏按钮 [博客美化]08.添加"扩大/缩小浏览区域大小" 按钮 1.页首添加HTML代码 进入自己的博客园->设置,将以下html代码添加到“页首Html代码” <div id="divExpan

Django -&gt; 添加ModelAdmin.date_hierarchy

第一次使用ModelAdmin.date_query,在admin.py中添加后,出现了这样的错误 ImproperlyConfigured exception (pytz isn't installed) 使用以下命令安装pytz之后,问题依然没有解决 $sudo pip install pytz 根据搜索结果,原来需要把settings.p中的USE_TZ = True修改为USE_TZ = False USE_TZ标记了是否支持Time zone.它的作用是可以根据用户的时区来处理日期.

[Django]添加robots.txt

方法一 : 可以直接在程序中添加url映射 在最外层的urls.py中添加 1 2 3 4 5 urlpatterns = patterns('',       ......      (r'^robots\.txt$', lambda r: HttpResponse("User-agent: *\nDisallow: /", mimetype="text/plain")),      (r'^CCSN\.txt$', lambda r: HttpResponse(

Django的rest_framework的视图之基于ModelViewSet视图源码解析

前言 今天一直在整理Django的rest_framework的序列化组件,前面一共写了2篇博客,前面的博客给的方案都是一个中间的状态的博客,其中有很多的冗余的代码,如果有朋友不清楚,可以先看下我前面的博客 第一篇,使用minix类来实现序列化和反序列化 https://www.cnblogs.com/bainianminguo/p/10463741.html 第二篇,使用通用的类的方法实现序列化和反序列化 https://www.cnblogs.com/bainianminguo/p/1046