diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-restframework-apiview.spec | 588 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 590 insertions, 0 deletions
@@ -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 @@ -0,0 +1 @@ +b2bbccf274f71e718733d50aa7662a50 django_restframework_apiview-1.4.3.tar.gz |