django用户使用tastype的restful api。

django-users-api的Python项目详细描述


https://travis-ci.org/mohabusama/django-users-api.svg?branch=master

django用户使用Tastypie的restful api。这个django应用程序提供restful接口:

安装

pip install django-users-api

或克隆回购

python setup.py install

开发

运行测试:

$ virtualenv venv
$ . venv/bin/activate
$ pip install -r requirements.txt
$ python setup.py test

集成

您可以通过各种方式将django users api应用程序集成到django应用程序中。

urlconfig(默认值)

django users api默认url添加到项目url。在下面的示例中,我们将包含前缀为“auth/”的users\u api.url

在项目url.py中:

from django.conf.urls import patterns, include, url

urlpatterns = patterns(
    '',
    # ...,
    url(r'^auth/', include('users_api.urls')),
    # ...
)

users\u api可以通过以下方式访问url:

/auth/users/
/auth/groups/
/auth/permissions/
...

选定资源

在某些情况下,您可能需要从项目url中排除一些资源。在这种情况下,您必须自己添加所需的资源。

假设您只需要usersresource可用(即不包括groupsresource&;permissionsresource

在项目url.py中:

from django.conf.urls import patterns, include, url

from users_api.common import UsersApi
from users_api.api.users import UsersResource

django_users_api = UsersApi()
django_users_api.register(UsersResource())

urlpatterns = patterns(
    '',
    # ...
    url(r'', include(django_users_api.urls)),
    # ...
)

usersresourceURL将通过以下途径访问:

/users/

资源

用户资源

django.contrib.auth.models.user的Tastypie模型资源。

get

  • 列出所有用户:/users/
  • 列出用户1:/users/1/

用户json响应示例:

{
    "dateJoined": "2014-12-24T13:04:36",
    "email": "admin@admin.com",
    "firstName": "",
    "isActive": true,
    "isStaff": true,
    "isSuperuser": true,
    "lastLogin": "2015-01-03T14:19:41.060600",
    "lastName": "",
    "resourceUri": "/users/1/",
    "username": "admin"
}

post

  • 创建新用户:/users/

important:创建用户需要一个password字段与数据一起提交。

用户json请求负载示例:

{
    "email": "new-user@admin.com",
    "firstName": "New",
    "lastName": "User",
    "username": "new_user"
    "password": "us3rP@sswd"
}

put

    更新现有用户:^ {TT2}$

提交密码字段将更改用户密码。

删除

    删除现有用户:^ {TT5}$$/LI>

组资源

django.contrib.auth.models.group的Tastypie模型资源。

get

  • 列出所有组:/groups/
  • 列表组1:/groups/1/
  • 列出用户1组:/users/1/groups/

组json响应示例:

{
    "name": "Group name",
    "resourceUri": "/groups/1/"
}

post

  • 创建新组:/groups/

组json请求负载示例:

{
    "name": "HR Group"
}

put

  • 更新现有组:^ {TT7}$$/LI>
  • 将组1分配给用户1:/users/1/groups/1/

删除

    删除现有组:^ {TT12}$
  • 从用户1中删除组1:/users/1/groups/1/

许可证来源

django.contrib.auth.models.permission的Tastypie模型资源。

get

  • 列出所有权限:/permissions/
  • 列表权限1:/permissions/1/
  • 列出用户1权限:/users/1/permissions/
  • 列出组1权限:/groups/1/permissions/

权限json响应示例:

{
    "codename": "add_logentry",
    "contentTypeUri": "/contenttypes/1/",
    "name": "Can add log entry",
    "resourceUri": "/permissions/1/"
}

post

  • 创建新权限:/permissions/

important:有效的权限应该通过contenttypeuri字段引用有效的contenttype(请参见ContentTypesResource)。

权限json请求负载示例(假设我们有一个blog模型):

{
    "codename": "add_blog",
    "contentTypeUri": "/contenttypes/20/",
    "name": "Can add new blog",
}

put

  • 更新现有权限:^ {TT15}$$/LI>
  • 将权限1分配给用户1:/users/1/permissions/1/
  • 将权限1分配给组1:/groups/1/permissions/1/

删除

    删除现有权限:^ {TT22}$$/LI>
  • 从用户1中删除权限1:/users/1/permissions/1/
  • 从组1中删除权限1:/groups/1/permissions/1/

内容nttypesresource

用于django.contrib.auth.models.contenttype的只读tastype modelresource。

get

  • 列出所有内容类型:/contenttypes/
  • 列表内容类型1:/contenttypes/1/

ContentType JSON响应示例:

{
    "appLabel": "admin",
    "model": "logentry",
    "name": "log entry",
    "resourceUri": "/contenttypes/1/"
}

身份验证

默认情况下,所有资源都使用tastypeSessionAuthentication

授权

默认情况下,所有资源都使用tastypeDjangoAuthorization

important:djangauthorization为所有用户提供read访问,这可能不是所需的行为。

延长

django users api资源基于tastypeModelResource class,这使您能够扩展和重写任何users\u api资源。

许可证

MIT License

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java找不到当前线程的会话   同步Java同步方法调用非同步方法   这段代码的java时间复杂度是如何列出一个集合的所有子集的?   java Jetty SslConnectionFactory nextProtocol   为什么在java集合中使用游标而不是for循环   java如何对长函数进行单元测试?   如何从java中的文本输入创建数组   java工具栏内容未显示,尽管出现了片段内容   java MediaPlayer无法处理本地文件   java在多次读取时,从TCP服务器读取的数据将挂起   java组织。springframework。数据领域无法将PageImpl强制转换为   java如何使用@WithMockUser并从属性文件中传递用户名和密码?   JavaSpringBootGradle插件2。x如何使用自定义启动器布局工厂   sockets Java客户端和服务器之间使用字符串等进行通信的“行业标准”方法是什么   java变量引用不存在的资源:${project\u loc:project\u name}   搜索如何返回LDAP Java中所有用户的特定属性?   JDK1.8.016x的java密钥斗篷代理问题   spring如何使用Java中的Exchange获取邮件   java Kotlin+Dagger 2:Dagger*文件不会生成   如何在传入的double上执行操作,然后在Java中返回