General Methods – An utility for Django Rest Framework, contains many utility functions that ease the development and improve the speed of development process.
PIPY: https://pypi.org/project/general-methods/
GITHUB: https://pypi.org/project/general-methods/
Installation
Install or add general-methods.
pip install general-methods
Utils functions
Import utils.
from general_methods import utils
Get Headers
To get headers (Dictionary type) from request.
headers = utils.get_headers(request)
Get Client IP Address
To get client IP Address.
client_ip_address = utils.get_client_ip_address(request)
Generate Random Token
To generate random alpha-numeric string. Default string length is 20.
token = utils.generate_token() // Default token length is 20 characters.
token = utils.generate_token(length=50) // Token length is 50 characters.
Get UUID
To get UUID string.
uuid = utils.get_uuid()
Hash algorithms.
The available algorithms are : ‘sha256’, ‘sha384’, ‘sha224’, ‘sha512’, ‘sha1’, ‘md5’
SHA1
hashed_string = utils.sha1('string_to_hash')
SHA224
hashed_string = utils.sha224('string_to_hash')
SHA256
hashed_string = utils.sha256('string_to_hash')
SHA384
hashed_string = utils.sha384('string_to_hash')
SHA512
hashed_string = utils.sha512('string_to_hash')
MD5
hashed_string = utils.md5('string_to_hash')
Encode String Data
To encode string data using django SECRET_KEY (available in settings.py file) as key to encode.
Note: If you changed the secret key of your django application then it won’t decode the string back. Use only in run time use-cases for example encode user id before sending it to client side so client will never get to know the actual user id.
encoded_data = utils.encode('MY_DATA_TO_ENCODE')
Decode String Data
To decode string data using django SECRET_KEY (available in settings.py file) as key to decode.
decoded_data = utils.decode('MY_DATA_TO_DECODE')
Is Valid JSON
To identify JSON data is valid or not. If valid, returns True else False.
is_valid_json = utils.is_valid_json({'key': 'value'})
Is Valid EMAIL ID
To identify email is valid or not. If valid, returns True else False.
is_valid_email = utils.is_valid_email('abc@mail.com')
Response functions
Note: Returns application/json response.
Import response.
from general_methods import response
Success Response 200
Returns dictionary { status: boolean, message: str, result: any }
Response code: 200
Function: response.success(‘Any Type of Data’)
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.success('Any Type of Data') // returning response to client.
Bad Request 400
Returns dictionary { status: boolean, message: str, result: any }
Response code: 400
Function: response.bad_request(‘Username is required.’)
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.bad_request('Username is required.') // returning response to client.
Server Error 500
Returns dictionary { status: boolean, message: str, result: any }
Response code: 500
Function: response.server_error(‘Optional Message’)
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.server_error() // returning response to client.
No Data Found 200
Returns dictionary { status: boolean, message: str, result: any }
Response code: 200
Function: response.no_data_found()
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.no_data_found() // returning response to client.
Parameter Missing 400
Returns dictionary { status: boolean, message: str, result: any }
Response code: 400
Function: response.param_missing(key, message)
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.param_missing('username', 'This field is required.') // returning response to client.
Unauthorized 401
Returns dictionary { status: boolean, message: str, result: any }
Response code: 401
Function: response.unauthorized()
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.unauthorized() // returning response to client.
Forbidden 403
Returns dictionary { status: boolean, message: str, result: any }
Response code: 403
Function: response.forbidden()
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.forbidden() // returning response to client.
Method Not Allowed 405
Returns dictionary { status: boolean, message: str, result: any }
Response code: 405
Function: response.method_not_allowed()
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.method_not_allowed() // returning response to client.
Not Acceptable 406
Returns dictionary { status: boolean, message: str, result: any }
Response code: 406
Function: response.not_acceptable()
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.not_acceptable() // returning response to client
Custom Error
Returns dictionary { status: boolean, message: str, result: any }
Response code: User Specified
Function: response.custom_error(status_code: int, result)
class MyView(APIView):
def get(self, request, *args, **kwargs):
return response.custom_error(status_code=200, result='Login Successful.') // returning response to client.
Exception functions
Note: Returns application/json response. Can be used in API exceptions. for example in API authorization or permission classes.
Import exceptions.
from general_methods import exceptions
Server Exception 500
Returns dictionary { status: boolean, message: str, result: any }
Response code: 500
raise exceptions.ServerException()
Unauthorized Exception 401
Returns dictionary { status: boolean, message: str, result: any }
Response code: 401
raise exceptions.UnauthorizedException()
Session Expired Exception 401
Returns dictionary { status: boolean, message: str, result: any }
Response code: 401
raise exceptions.SessionExpiredException()
Missing Header Exception 400
Returns dictionary { status: boolean, message: str, result: any }
Response code: 400
raise exceptions.MissingHeaderException()
Blocked Client Exception 401
Returns dictionary { status: boolean, message: str, result: any }
Response code: 401
raise exceptions.BlockedClientException()
Authentication Failed Exception 401
Returns dictionary { status: boolean, message: str, result: any }
Response code: 401
raise exceptions.AuthenticationFailedException()
Validators functions
Can be used in defining Models.
Import validators.
from general_methods import validators
Email Validator
Function: email_validator
class MyModel(models.Model):
email = models.CharField(max_length=100, validators=[validators.email_validator])
Mobile Number Validator (10 Length)
Function: mobile_number_validator
class MyModel(models.Model):
mobile = models.CharField(max_length=15, validators=[validators.mobile_number_validator])
Country Code Validator (Example: +91, +1 etc.)
Function: country_code_validator
class MyModel(models.Model):
mobile = models.CharField(max_length=15, validators=[validators.country_code_validator])
String with Space Validator [ a-zA-Z]
Function: string_with_space_validator
class MyModel(models.Model):
mobile = models.CharField(max_length=15, validators=[validators.string_with_space_validator])
Country Codes
All country codes are available.
Array of Objects like:
{ ‘country_code’: “IN”, ‘calling_code’: “+91”, ‘name’: ‘India (+91)’ }
Import country_codes.
from general_methods import country_codes
Dealing with forms in Django? Check the documentaion for Django Form Rendering with Crispy Forms.
Want to use TypeScript for your NodeJs project? Check the documentation for Nodejs starter using Typescript
0 Comments