summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-django-restframework-apiview.spec588
-rw-r--r--sources1
3 files changed, 590 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..0334cf0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/django_restframework_apiview-1.4.3.tar.gz
diff --git a/python-django-restframework-apiview.spec b/python-django-restframework-apiview.spec
new file mode 100644
index 0000000..fc9cc6d
--- /dev/null
+++ b/python-django-restframework-apiview.spec
@@ -0,0 +1,588 @@
+%global _empty_manifest_terminate_build 0
+Name: python-django-restframework-apiview
+Version: 1.4.3
+Release: 1
+Summary: Django REST_framework APIView
+License: LGPL v3
+URL: https://github.com/007gzs/django_restframework_apiview
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c4/06/2003b70f1c435e7484c84740bfd22fd84faf022311cc525472ac76144865/django_restframework_apiview-1.4.3.tar.gz
+BuildArch: noarch
+
+
+%description
+#############################
+Django REST_framework APIView
+#############################
+.. image:: https://travis-ci.org/007gzs/django_restframework_apiview.svg?branch=master
+ :target: https://travis-ci.org/007gzs/django_restframework_apiview
+
+***********
+Screenshots
+***********
+.. image:: https://github.com/007gzs/django_restframework_apiview/raw/master/img/demo.jpg
+
+****************
+Use in your app
+****************
+Install using pip::
+
+ pip install django_restframework_apiview
+
+Add 'apiview' to your INSTALLED_APPS setting::
+
+ INSTALLED_APPS = (
+ ...
+ 'apiview',
+ )
+
+JSONP Renderer And debug apiview with paramslist::
+
+ REST_FRAMEWORK = {
+ ...
+ 'DEFAULT_RENDERER_CLASSES': [
+ ...
+ 'apiview.renderers.JSONPRenderer',
+ ],
+ }
+ if DEBUG:
+ REST_FRAMEWORK['DEFAULT_RENDERER_CLASSES'].append('apiview.renderers.BrowsableAPIRenderer')
+
+Add error code to settings.py::
+
+ ERROR_CODE_DEFINE = (
+ ('ERR_AUTH_NOLOGIN', 10001, 'No login'),
+ ('ERR_AUTH_USER_EXISTS', 10002, 'User name has exists'),
+ ('ERR_AUTH_USER_NOT_EXISTS', 10003, 'User not exists'),
+ ('ERR_AUTH_PASSWORD', 10005, 'Password error'),
+ )
+
+edit myapp/views.py::
+
+ #! usr/bin/env python
+ # encoding: utf-8
+ from __future__ import absolute_import, unicode_literals
+
+ from django.db import IntegrityError, transaction
+ from django.contrib.auth import authenticate, login
+ from django.contrib.auth.models import User
+ from apiview.err_code import ErrCode
+ from apiview.exceptions import CustomError
+ from apiview.view import APIView
+ from apiview.views import ViewSite
+ from apiview.views import fields
+
+
+ site = ViewSite(name='base', app_name='base')
+
+
+ class APIBase(APIView):
+
+ class Meta:
+ path = '/'
+ param_fields = (
+ ('channel', fields.CharField(help_text='App Channel', required=False)),
+ ('version', fields.CharField(help_text='App Version', required=False)),
+ )
+
+
+ class UserAPIBase(APIBase):
+
+ def check_user_permission(self, request):
+ user = request.user
+ if not user.is_authenticated() or not isinstance(user, User):
+ raise CustomError(ErrCode.ERR_AUTH_NOLOGIN)
+
+ def view(self, request, *args, **kwargs):
+ self.check_user_permission(request)
+ return super(APIBase, self).view(request, *args, **kwargs)
+
+ class Meta:
+ path = '/user'
+
+
+ @site
+ class Login(APIBase):
+
+ name = '用户登陆'
+
+ def get_context(self, request, *args, **kwargs):
+ user = authenticate(username=request.params.username, password=request.params.password)
+ if user is None:
+ raise CustomError(ErrCode.ERR_AUTH_PASSWORD)
+ login(request, user)
+ return self.get_default_context(user_info={'username':request.user.username, 'email':request.user.email})
+
+ class Meta:
+ path = 'user/login'
+ param_fields = (
+ ('username', fields.CharField(help_text='用户名')),
+ ('password', fields.CharField(help_text='密码')),
+ )
+
+
+ @site
+ class Register(APIBase):
+
+ name = '用户注册'
+
+ def get_context(self, request, *args, **kwargs):
+ try:
+ user = User.objects.create_user(request.params.username, request.params.email, request.params.password)
+ except IntegrityError:
+ raise CustomError(ErrCode.ERR_AUTH_USER_EXISTS)
+ return self.get_default_context()
+
+ class Meta:
+ path = 'user/register'
+ param_fields = (
+ ('username', fields.RegexField(help_text='用户名', regex=r'^[a-zA-Z0-9_]{3,10}$')),
+ ('password', fields.CharField(help_text='密码')),
+ ('email', fields.EmailField(help_text='Email')),
+ )
+
+ @site
+ class Info(UserAPIBase):
+
+ name = '用户信息'
+
+ def get_context(self, request, *args, **kwargs):
+ user_info = {'username':request.user.username, 'email':request.user.email}
+
+ return self.get_default_context(user_info=user_info)
+
+
+ @site
+ class Logout(UserAPIBase):
+
+ name = '退出登陆'
+
+ def get_context(self, request, *args, **kwargs):
+ logout(request)
+
+ return self.get_default_context()
+
+ urlpatterns = site.urlpatterns
+
+add to urls.py end:
+
+ urlpatterns.append(url(r'^test/', include("myapp.views")))
+
+*******
+Example
+*******
+run example::
+
+ git clone https://github.com/007gzs/django_restframework_apiview.git
+ cd django_restframework_apiview/example
+ pip install -r requirements.txt
+ python manage.py makemigrations
+ python manage.py migrate
+ python manage.py runserver
+ open http://127.0.0.1:8000/example.html in browser
+
+
+api demo::
+ http://127.0.0.1:8000/example/param_filed_info
+
+%package -n python3-django-restframework-apiview
+Summary: Django REST_framework APIView
+Provides: python-django-restframework-apiview
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-django-restframework-apiview
+#############################
+Django REST_framework APIView
+#############################
+.. image:: https://travis-ci.org/007gzs/django_restframework_apiview.svg?branch=master
+ :target: https://travis-ci.org/007gzs/django_restframework_apiview
+
+***********
+Screenshots
+***********
+.. image:: https://github.com/007gzs/django_restframework_apiview/raw/master/img/demo.jpg
+
+****************
+Use in your app
+****************
+Install using pip::
+
+ pip install django_restframework_apiview
+
+Add 'apiview' to your INSTALLED_APPS setting::
+
+ INSTALLED_APPS = (
+ ...
+ 'apiview',
+ )
+
+JSONP Renderer And debug apiview with paramslist::
+
+ REST_FRAMEWORK = {
+ ...
+ 'DEFAULT_RENDERER_CLASSES': [
+ ...
+ 'apiview.renderers.JSONPRenderer',
+ ],
+ }
+ if DEBUG:
+ REST_FRAMEWORK['DEFAULT_RENDERER_CLASSES'].append('apiview.renderers.BrowsableAPIRenderer')
+
+Add error code to settings.py::
+
+ ERROR_CODE_DEFINE = (
+ ('ERR_AUTH_NOLOGIN', 10001, 'No login'),
+ ('ERR_AUTH_USER_EXISTS', 10002, 'User name has exists'),
+ ('ERR_AUTH_USER_NOT_EXISTS', 10003, 'User not exists'),
+ ('ERR_AUTH_PASSWORD', 10005, 'Password error'),
+ )
+
+edit myapp/views.py::
+
+ #! usr/bin/env python
+ # encoding: utf-8
+ from __future__ import absolute_import, unicode_literals
+
+ from django.db import IntegrityError, transaction
+ from django.contrib.auth import authenticate, login
+ from django.contrib.auth.models import User
+ from apiview.err_code import ErrCode
+ from apiview.exceptions import CustomError
+ from apiview.view import APIView
+ from apiview.views import ViewSite
+ from apiview.views import fields
+
+
+ site = ViewSite(name='base', app_name='base')
+
+
+ class APIBase(APIView):
+
+ class Meta:
+ path = '/'
+ param_fields = (
+ ('channel', fields.CharField(help_text='App Channel', required=False)),
+ ('version', fields.CharField(help_text='App Version', required=False)),
+ )
+
+
+ class UserAPIBase(APIBase):
+
+ def check_user_permission(self, request):
+ user = request.user
+ if not user.is_authenticated() or not isinstance(user, User):
+ raise CustomError(ErrCode.ERR_AUTH_NOLOGIN)
+
+ def view(self, request, *args, **kwargs):
+ self.check_user_permission(request)
+ return super(APIBase, self).view(request, *args, **kwargs)
+
+ class Meta:
+ path = '/user'
+
+
+ @site
+ class Login(APIBase):
+
+ name = '用户登陆'
+
+ def get_context(self, request, *args, **kwargs):
+ user = authenticate(username=request.params.username, password=request.params.password)
+ if user is None:
+ raise CustomError(ErrCode.ERR_AUTH_PASSWORD)
+ login(request, user)
+ return self.get_default_context(user_info={'username':request.user.username, 'email':request.user.email})
+
+ class Meta:
+ path = 'user/login'
+ param_fields = (
+ ('username', fields.CharField(help_text='用户名')),
+ ('password', fields.CharField(help_text='密码')),
+ )
+
+
+ @site
+ class Register(APIBase):
+
+ name = '用户注册'
+
+ def get_context(self, request, *args, **kwargs):
+ try:
+ user = User.objects.create_user(request.params.username, request.params.email, request.params.password)
+ except IntegrityError:
+ raise CustomError(ErrCode.ERR_AUTH_USER_EXISTS)
+ return self.get_default_context()
+
+ class Meta:
+ path = 'user/register'
+ param_fields = (
+ ('username', fields.RegexField(help_text='用户名', regex=r'^[a-zA-Z0-9_]{3,10}$')),
+ ('password', fields.CharField(help_text='密码')),
+ ('email', fields.EmailField(help_text='Email')),
+ )
+
+ @site
+ class Info(UserAPIBase):
+
+ name = '用户信息'
+
+ def get_context(self, request, *args, **kwargs):
+ user_info = {'username':request.user.username, 'email':request.user.email}
+
+ return self.get_default_context(user_info=user_info)
+
+
+ @site
+ class Logout(UserAPIBase):
+
+ name = '退出登陆'
+
+ def get_context(self, request, *args, **kwargs):
+ logout(request)
+
+ return self.get_default_context()
+
+ urlpatterns = site.urlpatterns
+
+add to urls.py end:
+
+ urlpatterns.append(url(r'^test/', include("myapp.views")))
+
+*******
+Example
+*******
+run example::
+
+ git clone https://github.com/007gzs/django_restframework_apiview.git
+ cd django_restframework_apiview/example
+ pip install -r requirements.txt
+ python manage.py makemigrations
+ python manage.py migrate
+ python manage.py runserver
+ open http://127.0.0.1:8000/example.html in browser
+
+
+api demo::
+ http://127.0.0.1:8000/example/param_filed_info
+
+%package help
+Summary: Development documents and examples for django-restframework-apiview
+Provides: python3-django-restframework-apiview-doc
+%description help
+#############################
+Django REST_framework APIView
+#############################
+.. image:: https://travis-ci.org/007gzs/django_restframework_apiview.svg?branch=master
+ :target: https://travis-ci.org/007gzs/django_restframework_apiview
+
+***********
+Screenshots
+***********
+.. image:: https://github.com/007gzs/django_restframework_apiview/raw/master/img/demo.jpg
+
+****************
+Use in your app
+****************
+Install using pip::
+
+ pip install django_restframework_apiview
+
+Add 'apiview' to your INSTALLED_APPS setting::
+
+ INSTALLED_APPS = (
+ ...
+ 'apiview',
+ )
+
+JSONP Renderer And debug apiview with paramslist::
+
+ REST_FRAMEWORK = {
+ ...
+ 'DEFAULT_RENDERER_CLASSES': [
+ ...
+ 'apiview.renderers.JSONPRenderer',
+ ],
+ }
+ if DEBUG:
+ REST_FRAMEWORK['DEFAULT_RENDERER_CLASSES'].append('apiview.renderers.BrowsableAPIRenderer')
+
+Add error code to settings.py::
+
+ ERROR_CODE_DEFINE = (
+ ('ERR_AUTH_NOLOGIN', 10001, 'No login'),
+ ('ERR_AUTH_USER_EXISTS', 10002, 'User name has exists'),
+ ('ERR_AUTH_USER_NOT_EXISTS', 10003, 'User not exists'),
+ ('ERR_AUTH_PASSWORD', 10005, 'Password error'),
+ )
+
+edit myapp/views.py::
+
+ #! usr/bin/env python
+ # encoding: utf-8
+ from __future__ import absolute_import, unicode_literals
+
+ from django.db import IntegrityError, transaction
+ from django.contrib.auth import authenticate, login
+ from django.contrib.auth.models import User
+ from apiview.err_code import ErrCode
+ from apiview.exceptions import CustomError
+ from apiview.view import APIView
+ from apiview.views import ViewSite
+ from apiview.views import fields
+
+
+ site = ViewSite(name='base', app_name='base')
+
+
+ class APIBase(APIView):
+
+ class Meta:
+ path = '/'
+ param_fields = (
+ ('channel', fields.CharField(help_text='App Channel', required=False)),
+ ('version', fields.CharField(help_text='App Version', required=False)),
+ )
+
+
+ class UserAPIBase(APIBase):
+
+ def check_user_permission(self, request):
+ user = request.user
+ if not user.is_authenticated() or not isinstance(user, User):
+ raise CustomError(ErrCode.ERR_AUTH_NOLOGIN)
+
+ def view(self, request, *args, **kwargs):
+ self.check_user_permission(request)
+ return super(APIBase, self).view(request, *args, **kwargs)
+
+ class Meta:
+ path = '/user'
+
+
+ @site
+ class Login(APIBase):
+
+ name = '用户登陆'
+
+ def get_context(self, request, *args, **kwargs):
+ user = authenticate(username=request.params.username, password=request.params.password)
+ if user is None:
+ raise CustomError(ErrCode.ERR_AUTH_PASSWORD)
+ login(request, user)
+ return self.get_default_context(user_info={'username':request.user.username, 'email':request.user.email})
+
+ class Meta:
+ path = 'user/login'
+ param_fields = (
+ ('username', fields.CharField(help_text='用户名')),
+ ('password', fields.CharField(help_text='密码')),
+ )
+
+
+ @site
+ class Register(APIBase):
+
+ name = '用户注册'
+
+ def get_context(self, request, *args, **kwargs):
+ try:
+ user = User.objects.create_user(request.params.username, request.params.email, request.params.password)
+ except IntegrityError:
+ raise CustomError(ErrCode.ERR_AUTH_USER_EXISTS)
+ return self.get_default_context()
+
+ class Meta:
+ path = 'user/register'
+ param_fields = (
+ ('username', fields.RegexField(help_text='用户名', regex=r'^[a-zA-Z0-9_]{3,10}$')),
+ ('password', fields.CharField(help_text='密码')),
+ ('email', fields.EmailField(help_text='Email')),
+ )
+
+ @site
+ class Info(UserAPIBase):
+
+ name = '用户信息'
+
+ def get_context(self, request, *args, **kwargs):
+ user_info = {'username':request.user.username, 'email':request.user.email}
+
+ return self.get_default_context(user_info=user_info)
+
+
+ @site
+ class Logout(UserAPIBase):
+
+ name = '退出登陆'
+
+ def get_context(self, request, *args, **kwargs):
+ logout(request)
+
+ return self.get_default_context()
+
+ urlpatterns = site.urlpatterns
+
+add to urls.py end:
+
+ urlpatterns.append(url(r'^test/', include("myapp.views")))
+
+*******
+Example
+*******
+run example::
+
+ git clone https://github.com/007gzs/django_restframework_apiview.git
+ cd django_restframework_apiview/example
+ pip install -r requirements.txt
+ python manage.py makemigrations
+ python manage.py migrate
+ python manage.py runserver
+ open http://127.0.0.1:8000/example.html in browser
+
+
+api demo::
+ http://127.0.0.1:8000/example/param_filed_info
+
+%prep
+%autosetup -n django-restframework-apiview-1.4.3
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-django-restframework-apiview -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 1.4.3-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..a177629
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+b2bbccf274f71e718733d50aa7662a50 django_restframework_apiview-1.4.3.tar.gz