django用户使用tastype的restful api。
django-users-api的Python项目详细描述
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
提交密码字段将更改用户密码。
删除
组资源
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/
删除
- 从用户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/
删除
- 从用户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。
延长
django users api资源基于tastypeModelResource class,这使您能够扩展和重写任何users\u api资源。