Saravanan666/pypi-org huggingface dataset:
Package: djangohttpbench
HTTP load testing tools for Django.
Like an apache bench but requests are sent from authenticated users without having to know their password.Installationdjango-httpbench requires python 3.6 or later and Django 2.0 or later.$python3-mpipinstalldjangohttpbenchhttps://pypi.org/project/djangohttpbench/UsageHeaderAuthBackendDjango authentication backend that allows one to login without having to know their password.
This backend is useful for testing scenarios.HTTP_BENCH_USERNAME_KEY="X-USERNAME"# default: X-USERNAMEINSTALLED_APPS+=['httpbench.apps.HttpbenchConfig',]MIDDLEWARE+=['httpbench.middlewares.HeaderAuthMiddleware',]AUTHENTICATION_BACKENDS+=['httpbench.backends.UsernameBackend',]$curl-H'X-USERNAME: c-bata'https://localhost:8000/path/to/page/require/authhttpbenchmanagement commandhttpbenchmanagement command acts like an apache bench but requests are sent from authenticated users.$python3manage.pyhttpbench-n1000-c50\>--usernamec-bata\>https://localhost:8000/Response time:
  mean: 3.862 secs
  min: 1.173 secs
  max: 11.097 secs
Status:
  2xx: 1000
  3xx: 0
  4xx: 0
  5xx: 0
  fail: 0Developmentlint:tox-eflake8orflake8test:tox-epy37orDJANGO_SETTINGS_MODULE=test_settings python-mdjango testLicenseThis software is licensed under the MIT License (SeeLICENSE).
Package: django-http-cache-control-view
Installation$[sudo]pipinstalldjango-http-cache-control-viewviews.pyfromdjango_http_cache_control_view.viewsimportHttpCacheControlMixinclassMyView(HttpCacheControlMixin,...):http_cache_control_max_age=60classMyView(HttpCacheControlMixin,...):defget_http_cache_control_max_age(self):return60readme42.com
Package: django-http-client
Installation$pipinstalldjango-http-clientsettings.pyINSTALLED_APPS+=['django_http_client']migrate$pythonmanage.pymigrateModelsmodeldb_tableRequesthttp_client_requestRequestExceptionhttp_client_request_exceptionResponsehttp_client_responseRequestmethodsnamedescription.get_data()return data dict.get_headers()return headers dictResponsemethodsnamedescription.delete_disk_path()deletedisk_pathfile or dir.get_content()return content.get_content_data()return content data/json/dict.get_headers()return headers dict.get_request_info()returnrequest_infodictExamplesRequestfromdjango_http_client.modelsimportRequestRequest(host='api.github.com',# used for limit_per_host/load balancerurl='https://api.github.com/users/LOGIN/repos?page=1',method='GET',allow_redirects=True,headers=json.dumps(headers),disk_path='api.github.com/users/LOGIN/repos/1',max_redirects=5,max_retries=5).save()Responsefromdjango_http_client.modelsimportResponsewithsession.request(**kwargs)asresponse:Response(url=response.url,status=response.status,headers=json.dumps(response.headers),request_info=json.dumps(request_info),disk_path=disk_path).save()forresponseinResponse.objects.all():request_info=response.get_request_info()headers=response.get_headers()response.delete_disk_path()RequestExceptionfromdjango_http_client.modelsimportRequestExceptionexceptExceptionase:RequestException(host=request_info['host'],# used for load balancer/staturl=response.url,request_info=json.dumps(request_info),exc_type=type(e),exc_message=str(e),timestamp=round(time.time(),3)).save()
Package: django-http-etag-view
Installation$[sudo]pipinstalldjango-http-etag-viewExamplesget_http_etagfromdjango_http_etag_view.viewsimportHttpEtagMixinclassMyView(HttpEtagMixin,...):defget_http_etag(self):return'XXX'dispatch,self.http_etag:classMyView(HttpEtagMixin,...):defdispatch(self,*args,**kwargs):self.http_etag='XXX'returnsuper().dispatch(*args,**kwargs)readme42.com
Package: django-http-fallback-storage
When the production site uploads folder gets really big you don’t want to
rsync everything to your local machine just to fix a few bugs. Only download
what is needed, right?That’s what this storage class does.UsageMake sure that you only use this ifDEBUG = TrueAdd the following settings:DEFAULT_FILE_STORAGE = 'http_fallback_storage.FallbackStorage'
FALLBACK_STORAGE_URL = 'http://example.com/media/'Optionally, configure logging so that it’s easy to see why page loads
would be slow when fetching media files. Either of the following
snippets should be fine when added to your settings file:FALLBACK_STORAGE_LOGGING = True

import http_fallback_storage
LOGGING = http_fallback_storage.LOGGINGor:FALLBACK_STORAGE_LOGGING = True

# LOGGING has already been defined
import http_fallback_storage
LOGGING.update(http_fallback_storage.LOGGING)Optionally, specify a regular expression for skipping file downloads,
e.g. the following regex to never download movies:FALLBACK_STORAGE_SKIP = r'(\.mp4|\.mov)$'
Package: django-http-last-modified-view
Installation$[sudo]pipinstalldjango-http-last-modified-viewviews.pyget_http_last_modifiedfromdjango_http_last_modified_view.viewsimportHttpLastModifiedMixinclassMyView(HttpLastModifiedMixin,...):defget_http_last_modified(self):returnself.obj.http_last_modifieddispatch,self.http_last_modified:classMyView(HttpLastModifiedMixin,...):defdispatch(self,*args,**kwargs):self.http_last_modified=obj.last_modified_atreturnsuper().dispatch(*args,**kwargs)readme42.com
Package: django-httplog
=============================django-httplog=============================.. image:: https://badge.fury.io/py/django-httplog.png:target: http://badge.fury.io/py/django-httplog.. image:: https://travis-ci.org/futurecolors/django-httplog.png?branch=master:target: https://travis-ci.org/futurecolors/django-httplog.. image:: https://coveralls.io/repos/futurecolors/django-httplog/badge.png?branch=master:target: https://coveralls.io/r/futurecolors/django-httplog?branch=masterVery simple http request-response log in database for debugging APIs.I've used it to debug small API for Django, built with DRF... warning::This is not for production systems, if you want to handle reasonable amount ofdata, please use `logstash`_, `Runscope`_, `django-request`_ or similar solutions.Each one has it's own focus...  _logstash: http://logstash.net/..  _runscope: https://www.runscope.com/..  _django-request: https://github.com/kylef/django-requestQuickstart----------Install django-httplog::pip install django-httplogAdd 'httplog' to INSTALLED_APPS::INSTALLED_APPS = (...'httplog',...)Make sure user model is available either via settings.AUTH_USER_MODEL or``django.contrib.auth`` is installed too.Launch  ``manage.py syncdb`` or ``manage.py migrate``Add middleware::MIDDLEWARE_CLASSES = (...'httplog.middleware.RequestResponseLoggingMiddleware',...)Add viewnames to log, or app_name (from ulrs.py) to log::HTTPLOG_URLNAMES = ['urlname1', 'urlname_x']HTTPLOG_APPS = ['my_super_app_name']By default, nothing is logged.Features--------* TODO: support DRF userHistory-------0.1.0 (2013-08-15)++++++++++++++++++* First release
Package: django-http-logs
provide http api for use of logging.handlers.HTTPHandlersave messages into db by asynchoronous,use celeryQuick startAdd “polls” to your INSTALLED_APPS setting like this:INSTALLED_APPS = (
    ...
    'django_http_logs',
)Include the polls URLconf in your project urls.py like this:url(r'logs/', include('django_logs.urls')),Runpython manage.py migrateto create the http logs  models.Runpython manage.py runserver 0.0.0.0:8080and run celery worker(config celery self)Start use http logging:import time
from logging.handlers import HTTPHandler
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
host = '127.0.0.1:8080' # django run port
url = '/logs/apis/'

handler = HTTPHandler(host, url, method='POST')
logger.addHandler(handler)
logger.debug("hello world")Visithttp://127.0.0.1:8080/adminto participate in the django_logs.
Package: django-http-method
django-http-methodProvide a workaround to use different method than GET or POST inside HTML forms in django templates. Works only with Class Based View.InstallationFrom source code:python setup.py installFrom pip:pip install django-http-methodUsageAdddjango_http_methodto your settings.INSTALLED_APPSINSTALLED_APPS=([...],django_http_method,[...],)Add the mixin to a CBVfromdjango.views.genericimportViewfromdjango_http_methodimportHttpMethodMixinclassTestView(HttpMethodMixin,View):defget(self,request):passdefdelete(self,request):passdefput(self,request):pass[...]In your template, loadhttp_methodand use{% http_[method] %}in your forms:{% load http_method %}<formaction="/"method="post">{% csrf_token %}
    {% http_put %}
    [...]<buttontype="submit">Send a PUT request</button></form><formaction="/"method="post">{% csrf_token %}
    {% http_patch %}
    [...]<buttontype="submit">Send a PATCH request</button></form>The corresponding method of your View will now be called. For instance, if{% http_put %}was used, thenTestView.put()will be called and any request parameter will be inrequest.PUT.Changelog1.2.1Renamed template directory todjango_http_method.1.2.0Dropped Django 1.X support.Now supports Django 3.2.1.1.1Now use Github action for testing and deployment1.1.0Dropped python 3.4 supportNow support django 3.01.0.2Addedpyamlto setup requirement.1.0.1Now useyaml.safe_load()instead ofyaml.load()Added python 3.7 and django 2.1 to test matrix1.0.0Initial release for python3.4+ and django1.8, 1.10, 1.11 and 2.0+0.4.0Will now search for parameters in body for methods PUT and PATCHMethod will default to request.method if '_method' parameter was not found0.3.2Added end slash '/' at the end of HTML input in templatetags0.3.0Removing '_method' from request parameters
Package: django-http-orm
django_http_ormHttp Interface over Django ORMThis library provides a simple HTTP interface over the Django ORM:It proveds the following endpoints:https://your.server.com/orm/schema/module/[APP_NAME]This returns a list of all the Django DB Models in APP_NAMEhttps://your.server.com/orm/schema/[FULL_MODEL_NAME]This returns schema information about FULL_MODEL_NAMEhttps://your.server.com/orm/query/[FULL_MODEL_NAME]?email=[PARAMETER]&name=[PARAMETER]This performs a search for FULL_MODEL_NAME filtering by "email" and "name"PUThttps://your.server.com/orm/query/[FULL_MODEL_NAME]/[ID]-d '{"first_name": "randi"}'This performs an update on the Model instance with "ID" and updates "first_name" to "randi"DELETEhttps://your.server.com/orm/query/[FULL_MODEL_NAME]/[id]This performa s deletePOSThttps://your.server.com/orm/query/[FULL_MODEL_NAME]- d '{"first_name" ...}'This creates a FUKLL_MODEL_NAME with the attributes specified in the POST body.INSTALLTIONYou will need to include "django_http_orm" in your INSTALLED_APPS and also include "django_http_orm.urls" in your urls file.
Package: django-http-referrer-policy
django-referrer-policy provides a middleware class implementingthe Referrer-Policy headerforDjango-powered sites.Note: Starting from Django v3.0, Django itself hasdefault supportofReferrer-Policyheader inSecurityMiddlewarevia setting variableSECURE_REFERRER_POLICY.DocumentationThe full documentation is athttps://django-http-referrer-policy.readthedocs.io.QuickstartInstall Django HTTP Referrer Policy:pip install django-http-referrer-policyAdd Django HTTP Referrer Policy Middleware to your settings:MIDDLEWARE=[...'django_http_referrer_policy.middleware.ReferrerPolicyMiddleware',...]Optional: provide variableREFERRER_POLICYto your settings with valid value if default value'no-referrer-when-downgrade'does not suit to you:REFERRER_POLICY='no-referrer'More details about valid referrer policies:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#SyntaxRunning TestsDoes the code actually work?source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ toxCreditsMaintainable version oforiginal library.Tools used in rendering this package:Cookiecuttercookiecutter-djangopackageHistory1.1.1 (2020-11-02)Add deprecation warning about Django v3.0. Django itself hasdefault supportofReferrer-Policyheader inSecurityMiddlewarevia setting variableSECURE_REFERRER_POLICY.1.1.0 (2020-10-27)Set default value to'no-referrer-when-downgrade'instead of requiring itAdd Django 3.1 and Python 3.9 for testing1.0.1 (2019-08-23)Update setup.pyUpdate docs for setting value in django-settings.1.0.0 (2019-08-11)First release on PyPI.
Package: django-http-requests-debug-toolbar
ADjango Debug Toolbarpanel for RequestsAboutDjango Requests Debug Toolbar tracks all HTTP requests made with the popularrequestslibrary.UsageInstall using pip:pip install django-http-requests-debug-toolbarAddrequests_panelto yourINSTALLED_APPSsetting.Addrequests_panel.panel.RequestsDebugPanelto yourDEBUG_TOOLBAR_PANELS.ContributingAll suggestions are welcome.
Package: django-httpxforwardedfor
Set request.META[‘REMOTE_ADDR’] from request.META[‘HTTP_X_FORWARDED_FOR’]QuickstartRelease NotesContributingReporting issues/improvementsPull RequestsSetting up all Python versionsCode of ConductQuickstartInstall django-httpxforwardedfor:pip install django-httpxforwardedforConfigure it in the settings of your django project:# Make sure it is at the beginning of the list of middle-ware classes.
# Only other middle-ware classes working on the remote address should
# precede it.
MIDDLEWARE = [
    'httpxforwardedfor.middleware.HttpXForwardedForMiddleware',
] + MIDDLEWARE

# Only allow HTTP_X_FORWARDED_FOR, if the request is marked as secure.
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

# To only allow change of the REMOTE_ADDR for requests via HTTPS.
# The default is to allow all requests.
TRUST_ONLY_HTTPS_PROXY = TrueRelease Notes0.3.1 - dropping support for Python 3.4 as it ran into EOL in March190.3.0 - update supported versions according tohttps://www.djangoproject.com/download/#supported-versionsandhttps://devguide.python.org/#status-of-python-branchesdropping support for Django 1.10 and Python 3.2 and 3.3adding support for Python 3.7adding support for Django 2.0adding support for Django 2.10.2.0 - futureproof releaseadapt to new middleware format of django 1.10+drop support for python 3.3, django < 1.100.1.2 - initial releasesupports Django 1.8, 1.9, 1.10, 1.11 on python 2.7, 3.3, 3.4, 3.5, and 3.6 - as per theofficial django docsconfiguration to activate forwarding of header only for safe requests and trusting only https requests in general.ContributingAs an open source project, we welcome contributions.The code lives ongithub.Reporting issues/improvementsPlease open anissue on githubor provide apull requestwhether for code or for the documentation.For non-trivial changes, we kindly ask you to open an issue, as it might be rejected.
However, if the diff of a pull request better illustrates the point, feel free to make
it a pull request anyway.Pull Requestsfor code changesit must have tests covering the change. You might be asked to cover missing scenariosthe latestflake8will be run and shouldn’t produce any warningif the change is significant enough, documentation has to be providedSetting up all Python versionssudo apt-get -y install software-properties-common
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
for version in 3.5 3.6 3.7; do
  py=python$version
  sudo apt-get -y install ${py} ${py}-dev
doneCode of ConductAs it is a Django extension, it followsDjango’s own Code of Conduct.
As there is no mailing list yet, please just email one of the main authors
(seesetup.pyfile orgithub contributors)
Package: django-hub-sdk
django-hub-sdkWhat Is This?The ISS (International Space Station) aims to be a space station (client) of connection between the microservices of its
ecosystem and the authentication and permissions microservice of the user that here is called in the script as
Hub.permissions modules / microservices (Hub)How To Use ThisInstallationpipinstalldjango-hub-sdkor if you are using Pipenv or Poetrypipenvinstalldjango-hub-sdkpoetryadddjango-hub-sdkSettingsAdd the app to installed appsINSTALLED_APPS=[...,"django_hub_sdk",...,]All settings can be modified through environment variables, so if you are using.envplease use it.Mandatory SettingsimportosHUB_APP_SLUG=""# project name on the hubHUB_BASE_URI=os.environ.get("HUB_BASE_URI","")# HUB backend urlHUB_BASE_FRONT_URI=os.environ.get("HUB_BASE_FRONT_URI",""# HUB frontend url)HUB_PROGRAMMATIC_CLIENT=os.environ.get("HUB_PROGRAMMATIC_CLIENT","")# Programmatic user access public keyHUB_PROGRAMMATIC_SECRET=os.environ.get("HUB_PROGRAMMATIC_SECRET","")# Programmatic user access private keyHUB_OAUTH_CLIENT_ID=os.environ.get("HUB_OAUTH_CLIENT_ID","")# Public oauth access keyHUB_OAUTH_CLIENT_SECRET=os.environ.get("HUB_OAUTH_CLIENT_SECRET","")# Private oauth access keyHUB_OAUTH_REDIRECT=os.environ.get("HUB_OAUTH_REDIRECT","")# oauth access return URLUser ModelTo continue the installation, in your User model extend the class below to be able to create the necessary relationships with the HUBfromdjango.contrib.auth.modelsimportAbstractUserfromdjango_hub_sdk.modelsimportBaseHubUser# <- Import BaseHubUser# Create your models here.classUser(AbstractUser,BaseHubUser):# <- Extends this on model...UrlsAdd this line to your urls.py to work with the frontend SDKfromdjango.urlsimportpath,includeurlpatterns=[path("api/",include("django_hub_sdk.urls",namespace="django_hub_sdk"))]Use of AuthorizationUse of authorizations to use the JWT generated by the Hubfromdjango_hub_sdk.authenticationimportHubJWTAuthentication# Import from packagefromrest_frameworkimportviewsclassLogoutView(views.APIView):authentication_classes=[HubJWTAuthentication]# <- Use on authentication_classes
Package: django-hudson
Plug and play continuous integration with django and hudsonUPDATE: Project renamed to django-jenkinshttp://pypi.python.org/pypi/django-jenkins/UsageAdd django_hudson to your INSTALLED_APPS list.
Configure hudson to run the following command:$ ./manage.py hudsonThis will create reports/ directory with junit xml, coverage and pylint
reports.For more details see the tutorial:http://sites.google.com/site/kmmbvnr/home/django-hudson-tutorial
Package: django-huey-email-backend
A simple Django email backend which uses Huey.UsageAdd the app to your settings:# settings.pyINSTALLED_APPS=[..."huey.contrib.djhuey","hueymail",...]and use it as your email backend:# settings.pyEMAIL_BACKEND='hueymail.backends.EmailBackend'Last, choose which email backend Huey should dispatch to via theHUEY_EMAIL_BACKENDsetting:# settings.pyHUEY_EMAIL_BACKEND="django.core.mail.backends.smtp.EmailBackend"How it worksWhat happens when you send an email?
Basically this:Django creates a new instance ofhueymail.backends.EmailBackend, and calls itssend_messages()method with the email messages it wants to send.Thesend_messages()method of thehueymail.backends.EmailBackendinstance
dispatches a Huey task calleddispatch_messages(), which is responsible for
sending those messages.Thedispatch_messages()task creates an instance ofHUEY_EMAIL_BACKENDand
calls itssend_messages()method with the original email messages.LicenseCopyright (c) 2022 Christopher McDonaldDistributed under the terms of theMITlicense.
Package: django-huey-logger
A simple Django app to let you know if huey tasks are working without
errors.Installationpipinstalldjango-huey-loggerRequirementsNeedshueyinstalled and configured.UsageIn your settings.pyINSTALLED_APPS=['huey_logger',# Django modules...]Run migrationspython manage.py migrate huey_loggerUsing the decoratorsKeep track of your periodic tasks by adding a decorator to your
functionsfromhuey_logger.decoratorsimportlog_db_periodic_task,log_db_taskfromhueyimportcrontab@log_db_periodic_task(crontab(hour='*/1',minute=0))defperiodic_do_something():print("I'm saying hello every hour :)")@log_db_taskdefdo_something_in_background():print("I'm saying hello under the hood")
Package: django-hugepagination
HugepaginationHugepagination提供了在Django REST framework框架下使用的分页类和模型视图单条记录翻页功能，主要针对mysql数据库百万级+数据表进行了优化。HugePagination，大数据表分页类TurnpageModelMixin，为视图类ViewSet混入单条记录翻页功能依赖django >= 2.2.0djangorestframework >= 3.10.0django-filter >= 2.2.0安装pip安装pipinstalldjango-hugepagination源码安装pythonsetup.pyinstall分页类使用分页类HugePagination必须与视图类ModelViewSet配合使用，后端数据库应当使用MySql数据库，可排序字段和查询条件字段应当建立索引。fromhugepagination.paginationimportHugePaginationclassMyViewSet(viewsets.ModelViewSet):queryset=MyModel.objects.all()serializer_class=MyModelSerializerpagination_class=HugePaginationfilter_backends=[DjangoFilterBackend,filters.OrderingFilter]ordering_fields=['name','create_time']filterset_fields=['name','create_time']单条翻页功能（上一条，下一条）TurnpageModelMixin为视图类ModelViewSet混入单条翻页功能，这个功能是列表视图的扩展，视图类增加如下方法：next查询指定记录的下一条记录，URL格式如下：http://127.0.0.1/resources/1/next/ordering=create_time&name=taobao返回数据格式:{"name":"taobao",..."create_time":"2020-10-10 12:12:01"}previous查询指定记录的下一条记录，URL格式如下：http://127.0.0.1/resources/1/previous/ordering=create_time&name=taobao返回数据格式同上turnpage查询指定ID的记录数据，同时返回该记录的上一条和下一条查询URL，URL格式如下：http://127.0.0.1/resources/5/turnpage/ordering=create_time&name=taobao返回数据格式如下：{"next":"http://127.0.0.1/resources/4/turnpage/ordering=create_time&name=taobao","previous":"http://127.0.0.1/resources/6/turnpage/ordering=create_time&name=taobao","data":{"name":"taobao",..."create_time":"2020-10-10 12:12:01"}}代码示例fromhugepagination.paginationimportHugePagination,TurnpageModelMixinclassMyViewSet(viewsets.ModelViewSet,TurnpageModelMixin):queryset=MyModel.objects.all()serializer_class=MyModelSerializerpagination_class=HugePaginationfilter_backends=[DjangoFilterBackend,filters.OrderingFilter]ordering_fields=['name','create_time']filterset_fields=['name','create_time']WEB服务器存在URL重写或者反向代理，返回URL与实际访问URL不一致，处理方法在django配置文件中增加配置项ORIGINAL_URI_MAP，该配置是list，包含三个元素，依次指定包含源请求URL的scheme，host，path三个部分的http header。响应结果将根据http header修改。ORIGINAL_URI_MAP=['X-Scheme','X-Forwarded-Host','X-Original-Uri']也可以在视图中配置属性original_uri_map，格式通上。
视图中属性优先于配置文件。注意事项如果要保持列表显示记录的顺序和翻页显示记录的顺序一致，那么排序条件和筛选条件应当与列表查询保持一致。翻页查询使用next和previous方法，应当避免在获取上一条和下一条前修改当前记录的排序字段值；这种情况建议用turnpage方法。
Package: django-human-datetime
Django Human DateTime ParsingAuthors:Justin Quick <justquick@gmail.com>Version:0.1This tool uses theparsedatetime packageto turn human readable form input (like ‘tomorrow 7PM’) intodatetimeobjects (like datetime.datetime(2010, 4, 9, 19, …)).
This app requiresparsedatetimeandpytz.
The app comes with a set of fields to replace Django’s own DateTimeField, DateField, and TimeField. Get them by using:from humandt.fields import HumanDateTimeField, HumanTimeField, HumanDateFieldThen use them however you like as form fields in your own Django Forms:from django.forms import Form

class ExampleForm(Form):
    datetime = HumanDateTimeField(required=False)
    time = HumanTimeField(required=False)
    date = HumanDateField(required=False)Example ProjectDownload the most recent sourcecode and start up the development server. Make sure you have the most recent version of django:git clone git://github.com/justquick/django-human-datetime.git
cd django-human-datetime
pip install parsedatetime pytz django
python setup.py install
cd example_project
python manage.py runserverIf all goes well it will be available athttp://127.0.0.1:8000/. There is an example form up there that just spits out the parsed date/time input. Look at the example_project.views for useage example.
To test the humandt app, stop the server and run this:python manage.py test humandt
Package: django-humanity
The robots are trying to take over the world. Ensure that your forms
are used only by humans.django-humanity adds a simple mathematical equation to your form that users
must solve in order to submit. Computers are notoriously terrible at math,
so this is a task that only humans (or maybe dolphins) can accomplish.UsageCreate your form as a subclass of HumanityForm:from humanity.forms import HumanityForm

class MyForm(HumanityForm):
    passThat’s it! Just include the form in your template and everything will be
handled for you.