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第三方库


热门话题
mysql java。util。仅ymd的日期获取毫秒数   java游标。getColumnIndexOrThrow()引发NullPointerException   将project从java 8.11移至8.21及更高版本后,javafx字体呈现出现问题   java如何在某些条件有效时更改tableView行颜色(javaFX)   java在具有多个允许签名的Android服务上实现signaturelevel安全性   java与JTATransactionManager一起处理事务?   整数乘法的java递归定义   java如何将cwaccamera预览设置为使用scaleType centerCrop?   java如何在安卓 gradle中将库模块从proguard中免除   进程中的java循环冲突优化   模型视图控制器Java MVC计算器   java无法在VSCode中运行“karatedemo”运行程序,因为无法解析karatecore类   java将jsp页面内容读取到其他jsp页面中的html   java使JFileChooser。showSaveDialog看起来更像showOpenDialog   继承Java接口契约问题   java从ArrayList中删除随机项   java Selenium与Jbehave和Chromedriver挂起或崩溃   java需要帮助理解特定getter如何影响我的程序   验证如何在Java中整合有效性检查和异常抛出?