# nuoxiao api Django REST Framework(简称DRF),是一个用于构建Web API的强大且灵活的工具包。 # 环境搭建,软件安装 pip install django # django pip install djangorestframework # rest api pip install pygments # 我们将使用它来实现代码高亮 pip install coreapi # pip install schema # pip install markdown # Markdown支持可浏览的API pip install django-crispy-forms # csrf验效, 基于中间件的process_view方法实现对请求的csrf_token验证 pip install django-guardian # 支持对象级别的权限控制 pip install django-filter # 搜索过滤 pip install django-cors-headers # 跨域访问,安装django-cors-headers API通常都是由不同域名来进行调用,放在CsrfViewMiddleware之前 pip install pymysql # mysql数据库 pip install whitenoise 只需简单地修改Config文件,用户就可以按自己的意图来以静态文件方式部署Web应用,而不必依赖于Nginx、亚马逊S3等外部服务。Whitenoise能对打包内容进行压缩并设置高容量的缓存。 遵循WSGI规范的应用需要在部署时对Whitenoise配置进行调整: from whitenoise import WhiteNoise from my_project import MyWSGIApp application = MyWSGIApp() application = WhiteNoise(application, root='/path/to/static/files') application.add_files('/path/to/more/static/files', prefix='more-files/') 这样做的重要性是什么?使用Gzip可有效地减少静态文件体积和页面载入。但是搜索引擎会侦测到Gzip压缩,这会导致网站不执行Gzip。所以需要透过上述修改来避免这种情况。 # Premissions 顾名思义就是权限管理,用来给 # ViewSet 设置权限,使用 # premissions 可以方便的设置不同级别的权限: # 全局权限控制 # ViewSet 的权限控制 Method 的权限 Object 的权限被 premission 拦截的请求会有如下的返回结果: # 当用户已登录,但是被 # premissions # 限制,会返回 # HTTP # 403 # Forbidden # 当用户未登录,被 # premissions # 限制会返回 # HTTP # 401 # Unauthorized # 默认的权限 # rest_framework # 中提供了七种权限 # # AllowAny # 无限制 # IsAuthenticated # 登陆用户 # IsAdminUser # Admin 用户 # IsAuthenticatedOrReadOnly # 非登录用户只读 # DjangoModelPermissions # 以下都是根据 Django 的 ModelPremissions # DjangoModelPermissionsOrAnonReadOnly # DjangoObjectPermissions #