Saravanan666/pypi-org huggingface dataset:
Package: django-sae
#django-sae[![PyPI version](https://badge.fury.io/py/django-sae.png)](http://badge.fury.io/py/django-sae)用于新浪云平台SAE### 扩展命令* compress_site_packages：压缩 site_packages* upgrade_requirements：更新requirements.txt中所有依赖的库* sae_migrate：切换到SAE数据库，并进行migrate操作使用sae_migrate等与数据库相关的扩展命令时，请手工获取SAE数据库的相关常数，如MYSQL_DB、MYSQL_USER、MYSQL_PASS等，并在settings中对DATABASES进行修改。### 数据库如需数据库读写操作分离，请在settings中进行设置（示例如下）:```pythonfrom sae.const import MYSQL_HOST, MYSQL_HOST_S, MYSQL_PORT, MYSQL_USER, MYSQL_PASS, MYSQL_DBDATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': MYSQL_DB,'USER': MYSQL_USER,'PASSWORD': MYSQL_PASS,'HOST': MYSQL_HOST,'PORT': MYSQL_PORT,'OPTIONS': {'init_command': "SET storage_engine=MYISAM;"},},'slave': {'ENGINE': 'django.db.backends.mysql','NAME': MYSQL_DB,'USER': MYSQL_USER,'PASSWORD': MYSQL_PASS,'HOST': MYSQL_HOST_S,'PORT': MYSQL_PORT,'OPTIONS': {'init_command': "SET storage_engine=MYISAM;"},},}DATABASE_ROUTERS = ['django_sae.db.routers.MasterSlaveRouter']```### 缓存使用 SAE Memcache 服务时，请在settings中进行设置（示例如下）:```pythonCACHES={'default': {'BACKEND': 'django_sae.cache.backends.SaePyLibMCCache',}}```### 日志使用日志过滤器RequireInSAE和RequireNotInSAE时，请在settings中进行设置（示例如下）:```pythonLOGGING = {'version': 1,'disable_existing_loggers': True,'filters': {'require_in_sae': {'()': 'django_sae.utils.log.RequireInSAE',},'require_not_in_sae': {'()': 'django_sae.utils.log.RequireNotInSAE',},},'handlers': {'console': {'level': 'DEBUG','class': 'logging.StreamHandler','filters': [ 'require_in_sae'],},},'loggers': {'django': {'handlers': ['console'],},}}```.. :changelog:Release History---------------0.2.1 (2014-06-27)++++++++++++++++++- 删除模块：http（Django1.7已支持JsonResponse）- 修改设置：LANGUAGE_CODE为zh-hans（zh-cn从1.9版本后弃用）0.2.0 (2014-05-17)++++++++++++++++++- 修改扩展命令：sae_migrate（使用Django1.7自带的migrate命令）- 删除扩展命令：sae_syncdb（Django1.7已移除syncdb命令）0.1.23 (2014-03-21)++++++++++++++++++- 添加日志过滤器：RequireInSAE，RequireNotInSAE0.1.21 (2014-03-20)++++++++++++++++++- 删除扩展命令：sae_schemamigration（因为此命令不需要链接SAE数据库）0.1.18 (2014-03-19)++++++++++++++++++- 添加扩展命令：upgrade_requirements0.1.13 (2014-03-18)++++++++++++++++++- 重命名扩展命令： updatepackages -> compress_site_packages，- 添加扩展命令：sae_migrate, sae_schemamigration, sae_syncdb0.1.11 (2014-03-17)++++++++++++++++++- commands（扩展命令）: updatepackages（更新依赖库并压缩为site-packages.zip）0.1.1 (2014-03-16)++++++++++++++++++- patches: 自动设置- conf: SAE平台的默认设置0.1.0 (2014-03-15)++++++++++++++++++- db: 通用模型和读写分离- cache: 缓存模型- utils: 时间戳模块和装饰模块- tasks: 用于执行任务
Package: django-safari-notifications
Support for Safari Push Notifications from within Django. Note that this package helpsregisteringnotifications, not sending them. Safari Push works with APNs, so for sending, please useAPNs Clerk.DocumentationThe full documentation will soon be athttps://django-safari-notifications.readthedocs.io.For the Safari Push documentations, refer toApple Safari Push.QuickstartInstall django_safari_notifications:pip install django-safari-notificationsIf you already have a validpushPackage.zip, please serve it directly via your web server (Nginx/Apache) at the corresponding url:{webServiceUrl}/{version}/pushPackages/{websitePushID}(refer toApple Safari Push)Else, youmustsubclassdjango_safari_notifications.apps.DjangoSafariNotificationsConfigand set thecertandpassphrasevalues.fromdjango_safari_notifications.appsimportDjangoSafariNotificationsConfigclassMySafariNotificationsConfig(DjangoSafariNotificationsConfig):cert='/path/to/cert.pem'passphrase='passphrase for key'then add your config to yourINSTALLED_APPS:INSTALLED_APPS=(...'my_safari_app.apps.MySafariNotificationsConfig',# if you need the pushPackage to be dynamically built## OR ##'django_safari_notifications.apps.DjangoSafariNotificationsConfig',# If you are serving your own push package via Nginx...)Add django_safari_notifications’s URL patterns:fromdjango_safari_notificationsimporturlsasdjango_safari_notifications_urlsurlpatterns=[...url(r'^',include(django_safari_notifications_urls,namespace='safari_pn')),...]Do not use any prefix for the urls, unless you are serving your ownpushPackage.zipstaticallyFeaturesTODORunning TestsDoes the code actually work?source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ toxCreditsTools used in rendering this package:Cookiecuttercookiecutter-djangopackageHistory0.1.0 (2016-12-10)First release on PyPI.
Package: django-safe-filefield
Secure file field, which allows you to restrict uploaded file extensions.
It may be useful for user-uploaded files (attachments).This package adds model and forms field. What this fields does:restricts allowed file extensions (for example: only *.pdf files)checks file extensions is correct for sent content-typechecks sent content type is correct for file content (detects bylibmagic)checks uploaded file with anti-virus softwareInstallationThe package can be installed using:pip install django-safe-filefieldAdd the following settings:INSTALLED_APPS+=['safe_filefield',]django-safe-filefieldrequireslibmagicto be installed.UsageSimply add field to your model:fromsafe_filefield.modelsimportSafeFileFieldclassMyModel(models.Model):attachment=SafeFileField(allowed_extensions=('xls','xlsx','csv'))Or directly to your form:fromsafe_filefield.formsimportSafeFileFieldclassMyForm(forms.Form):attachment=SafeFileField(allowed_extensions=('xls','xlsx','csv'))Content type checkingTo check actual file content type, usecheck_content_typeargument. This
will prevent attacker from uploading malicious file just by changing its
extension.classMyForm(forms.Form):attachment=SafeFileField(check_content_type=True)ClamAV supportNoteTo use this functionality you should haveclamddaemon.This package has ability to check uploaded file with ClamAV antivirus.To use anti-virus protection simply enable it in your form or model definition:fromsafe_filefield.formsimportSafeFileFieldclassMyForm(forms.Form):attachment=SafeFileField(scan_viruses=True,)You can configure some ClamAV settings:CLAMAV_SOCKET='unix://tmp/clamav.sock'# or tcp://127.0.0.1:3310CLAMAV_TIMEOUT=30# 30 seconds timeout, None by default which means infiniteContributingIf you have any valuable contribution, suggestion or idea,
please let me know as well because I will look into it.Pull requests are welcome.
Package: django-safe-filefield-new
Secure file field, which allows you to restrict uploaded file extensions.
It may be useful for user-uploaded files (attachments).This package adds model and forms field. What this fields does:restricts allowed file extensions (for example: only *.pdf files)checks file extensions is correct for sent content-typechecks sent content type is correct for file content (detects bylibmagic)checks uploaded file with anti-virus softwareThis project continueshttps://github.com/rvause/django-safe-filefield.InstallationThe package can be installed using:pip install django-safe-filefield-newAdd the following settings:INSTALLED_APPS+=['safe_filefield',]django-safe-filefield-newrequireslibmagicto be installed.UsageSimply add field to your model:fromsafe_filefield.modelsimportSafeFileFieldclassMyModel(models.Model):attachment=SafeFileField(allowed_extensions=('xls','xlsx','csv'))Or directly to your form:fromsafe_filefield.formsimportSafeFileFieldclassMyForm(forms.Form):attachment=SafeFileField(allowed_extensions=('xls','xlsx','csv'))Content type checkingTo check actual file content type, usecheck_content_typeargument. This
will prevent attacker from uploading malicious file just by changing its
extension.classMyForm(forms.Form):attachment=SafeFileField(check_content_type=True)ClamAV supportNoteTo use this functionality you should haveclamddaemon.This package has ability to check uploaded file with ClamAV antivirus.To use anti-virus protection simply enable it in your form or model definition:fromsafe_filefield.formsimportSafeFileFieldclassMyForm(forms.Form):attachment=SafeFileField(scan_viruses=True,)You can configure some ClamAV settings:CLAMAV_SOCKET='unix://tmp/clamav.sock'# or tcp://127.0.0.1:3310CLAMAV_TIMEOUT=30# 30 seconds timeout, None by default which means infiniteContributingIf you have any valuable contribution, suggestion or idea,
please let me know as well because I will look into it.Pull requests are welcome.
Package: django-safe-project
django-safe-projectCreates and uses the installed Django project template to keep sensitive
data out of global settings.InstallationTo installdjango-safe-projectrun:pip install django-safe-projectOr download the latest releasehereand install by running:python setup.py installUsageWhen installed, calldjango-safe-project <projectname>instead ofdjango-admin startproject <projectname>This will create a separate module in the project path namedlocal_settings.pycontaining all the things you don’t want to ever
place in any sort of VCS ever.local_settings.pywill then be gitignored and its contents imported
into the mainsettings.pymodule.Currently the list of settings this handles are:SECRET_KEY (obviously)DATABASES (duh!!!)DEBUGALLOWED_HOSTS
Package: django-safe-settings
django-safe-settingsDjango application let you write your database password settings in an encrypted way.Installpip install django-safe-settingsUsagepro/settings.pyINSTALLED_APPS = [
    ...
    'django_safe_settings',
    ...
]


DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "HOST": "127.0.0.1",
        "PORT": 3306,
        "NAME": "project_database_name",
        "USER": "project_database_username",
        "PASSWORD": "enc:e7293477f3fa2a72935913624eecdeb5",
        "OPTIONS": {
            "init_command": """SET sql_mode="STRICT_TRANS_TABLES" """,
        },
    },
}

...

## ##################################################################
## this must be at the bottom of settings.py
## ##################################################################
from django_safe_settings.patch import patch_all
patch_all()Set sensitive configuration items to encrypted values, e.g.PASSWORD=enc:e7293477f3fa2a72935913624eecdeb5, the real plain value ispasswordfortest.Usepython manage.py django_safe_settings_encrypt PLAIN_DATAto get the encrypted value, e.g.C:\git\django-safe-settings>python manage.py django_safe_settings_encrypt passwordfortest
    plain value = passwordfortest
encrypted value = enc:e7293477f3fa2a72935913624eecdeb5We use fastutils.cipherutils.AesCipher for encryption, and the password is related to Django's SECRET_KEY, so when the SECRET_KEY's value changes, the encrypted value must be regenerated.You can use encrypt values anywhere in Django's settings.Releasesv0.1.0First release.v0.1.1Remove unused imports.v0.1.2Fix problems in django 3.2.x.v0.1.3Fix decrypt fail silent problem.v0.1.4Doc update.
Package: django-sage-encrypt
DetailInstallationGenerate secret keySettingsCommandsProject DetailYou can find all technologies we used in our project into these files:
* Version: 1.0.0 * Frameworks: - Django 3.2.4 * Database: -
PostgreSQL 10 * Language: Python 3.9.4InstallationFirst install package$pipinstalldjango-sage-encryptThen add ‘sage_encrypt’ to INSTALLED_APPS in settings.pyINSTALLED_APPS=[...'sage_encrypt',...]Also you need to installpgcryptoextension in your database:sudo-upostgrespsql<db_name>CREATEEXTENSIONpgcrypto;FieldsFor encrypting each row of your database there are multiple ways:useencrypt_fieldfunction in your models.pyfromdjango.dbimportmodelsfromsage_encrypt.services.encryptimportencrypt_field# symmetric encryptiontitle=encrypt_field(models.CharField(max_length=255))# asymmetric encryptiontitle=encrypt_field(models.CharField(max_length=255),algorithm='asymmetric')use field directly# symmetric encryptionfromsage_encrypt.fields.symmetricimportEncryptedCharFieldtitle=EncryptedCharField(max_length=255)# asymmetric encryptionfromsage_encrypt.fields.asymmetricimportEncryptedCharFieldtitle=EncryptedCharField(max_length=255)If you want to usesymmetric encryptionyou don’t need to generate
secret keys default is SECRET_KEYBut if you want to useasymmetric encryptionyou have to generate
private key & public keyGenerate secret key# generate private & public keygpg--gen-key# in password section do not enter passwordgpg--list-keys# outputpubrsa30722021-06-20[SC][expires:2023-06-20]<test_token_generated>uid[ultimate]Test<test@gmail.com>subrsa30722021-06-20[E][expires:2023-06-20]gpg-a--export<test_token_generated>>public.keygpg-a--export-secret-keys<test_token_generated>>private.keySettingsHere are the parameters that you can set from setting:ParameterDescriptionENCRYPT_KEYSecret key that using for symmetric encryption. default: SECRET_KEYENCRYPT_PRIVATE_KEYPrivate key for asymmetric encryption. default: NoneENCRYPT_PUBLIC_KEYPrivate key for asymmetric encryption. default: NoneManagement Commandssage_encrypt provides 2 management commands:encryptdbpythonmanage.pyencryptdb--table<table_name>--column<col_name>--cast<field_previous_cast_type>--algorithm<algorithm>#(symmetric/asymmetric)Options:–database (if you have multiple db’s specify for your database)–table (table name in your database not django model title)–column (col name in the specified table)–algorithm (symmetric/asymmetric)–cast (field previous cast that you want to encrypt from that)Usage:When you want to add encryption on a row and there is valuable data in
you db, you can encrypt the data to be compatible with Encrypted Field.decryptdbpythonmanage.pydecryptdb--table<table_name>--column<col_name>Options:–database (if you have multiple db’s specify for your database)–table (table name in your database not django model title)–column (col name in the specified table)Usage:When your data is encrypted in db and you want to remove encryption from
a row, for getting back data you can use this command, it decrypts data
and replaces in your db.
Package: django-sagepaypi
Django SagePayPI Payment GatewayDocumentationCan be found onreadthedocs.Example site with dockerClone the repo$gitclonehttps://github.com/AccentDesign/django-sagepaypi.gitRun the docker container$cddjango-sagepaypi$docker-composeupCreate yourself a superuser$docker-composeexecappbash$pythonmanage.pycreatesuperuserGo tohttp://127.0.0.1:8000
Package: django-sage-session
Django Sage SessionWhat is django-sage-session package?django-sage-session is a useful package for per user session & private session in Django Web FrameworkThe Latest version ofdjango-sage-sessiondocumentationProject DetailGit RulesGet StartedUsageSettingsAdminProject DetailLanguage: Python > 3.5Framework: Django > 3.1Git RulesS.A.G.E. team Git Rules Policy is available here:S.A.G.E. Git PolicyGet StartedFirst install the package using pip:$pipinstalldjango-sage-sessionThen add sage_cache toINSTALLED_APPS:INSTALLED_APPS=[...'sage_session',...]UsageFor using per user session you have to modifyMIDDLEWAREin setting:Replace django Session middleware with sage_session User Session middlewareMIDDLEWARE=[...'django.middleware.security.SecurityMiddleware','sage_session.middlewares.UserSessionMiddleware',# provided middleware for per user session# 'django.contrib.sessions.middleware.SessionMiddleware',...]For activating Privacy session add it toMIDDLEWARE:Add after UserSessionMiddlewareMIDDLEWARE=[...'sage_session.middlewares.UserSessionMiddleware',# user session'sage_session.middlewares.UserSessionPrivacyMiddleware',# privacy session# 'django.contrib.sessions.middleware.SessionMiddleware',...]SettingsPRIVACYSESSIONS_AUTHED_ONLY=False# authentication requiredPRIVACYSESSIONS_PRIVACY_IP=True# validate IPPRIVACYSESSIONS_PRIVACY_UA=True# validate user agentPRIVACYSESSIONS_REMOTE_ADDR_KEY='REMOTE_ADDR'# remote addr key in request (not recommended to change)PRIVACYSESSIONS_REDIRECT_VIEW=None# redirect view after logging outPRIVACYSESSIONS_FAILURE_STATUS=400# if not PRIVACYSESSIONS_REDIRECT_VIEW set return status codePRIVACYSESSIONS_IPV4_LENGTH=32# length of ipv4 (not recommended to change)PRIVACYSESSIONS_IPV6_LENGTH=64# length of ipv6 (not recommended to change)PRIVACYSESSIONS_IP_KEY='_privacysessions_ip'# ip key in sessionPRIVACYSESSIONS_UA_KEY='_privacysessions_ua'# user agent key in sessionAdminsage_sessionalso has an admin panel for User Session monitoring, It will activate when you addsage_sessiontoINSTALLED_APPSTeamSepehr Akbarazadeh MaintainerMehran Rahmanzadeh Maintainer
Package: django-sage-streaming
The Latest version ofdjango-sage-streamingdocumentationProject DetailinstallationGet StartedAdminSettingsFront-End implementationProject DetailYou can find all technologies we used in our project into these files:
* Version: 1.0.0 * Frameworks: - Django 3.2.5 * Libraries: - Django
rest framework 3.12.4 * Language: Python 3.9.4InstallationFirst install package$pipinstalldjango-sage-streamingThen addsage_streamto INSTALLED_APPS in settings.pyINSTALLED_APPS=[...'sage_stream',...]Also make sure you haverest_frameworkin INSTALLED_APPSINSTALLED_APPS=[...'rest_framework',...]Getting Starteddjango-sage-streamingprovides two ways that you can stream videos
over HTTP: 1. built-in API View: for using built-in view addsage_stream.api.urlsto urls.pyfromdjango.urlsimportpath,includeurlpatterns=[...path('api/',include('sage_stream.api.urls')),...]Now you can access the stream api here:localhost:8000/api/stream?path=<you_video_path>The settings of built-in view is available herecreate custom views: you can use stream functions in your applicationfromsage_stream.utils.stream_servicesimportget_streaming_responseresponse=get_streaming_response(path=video_path,# path to videorange_header=range_header,# range header extracted from requestrange_re=range_re,# range header regex pattern (default is available in sage_stream.settings.STREAM_RANGE_HEADER_REGEX_PATTERN)max_load_volume=max_load_volume,# the maximum volume of the response body)Other functions you can usefromsage_stream.utils.file_servicesimportfile_iterator# iterates in given file chunk by chunk in generator modefromsage_stream.utils.log_servicesimportlog_watch_request# creates WatchLog instance with given data# usage examples# loglog_watch_request(video_path,request.user.is_authenticated,ip,request.user)# file iteratorresp=StreamingHttpResponse(file_iterator(path,offset=first_byte,length=length),status=206,content_type=content_type)Admindjango-sage-streamingalso has logging system for watching requestsIt is available in admin panel when you addsage_streamto
INSTALLED_APPSSettingsHere are the parameters that you can set from setting:ParameterDescriptionSTREAM_DEFAULT_PERMISSION_CLASSESpermission_classes that used in built-in APIView. default: (AllowAny,)STREAM_DEFAULT_VIDEO_PATH_URL_VARurl path variable key. default: pathSTREAM_MAX_LOAD_VOLUMEmaximum load video in each chunk(by MB). default: 8STREAM_WATCH_LOG_ENABLEDis log watch requests enabled. default: TrueSTREAM_RANGE_HEADER_REGEX_PATTERNrange header regex pattern. default: r’bytes=(+)-()’FrontendFrontend implementation is so easyyou just need to add stream url assrcinvideotag<videowidth="480"controls><sourcesrc="http://localhost:8000/api/stream/?path=<path_to_video>"type="video/mp4"></video>TeamSepehr AkbarazadehMehran Rahmanzadeh
Package: django-sales
django-sales is a Django app for displaying different contact details based on query parameter (with cookie).
It provides sales, partners and affiliates custom links to send out to the public.
It gives sales, partners and affiliates their opportunity to convert every contact detail on the website to their own.
It thus encourages sales, partners and affiliates to promote the website and the business.InstallationUse the package managerpipto install django-sales.pipinstalldjango-salesUsageStep 1. Add sales app (in settings.py file)INSTALLED_APPS=['...','django.contrib.staticfiles','sales',# here'myapp','...',]Make sure sales app is before all custom apps.
Otherwise, Django will not recognize the ‘sales’ template tag.Step 2. Add sales middleware (in settings.py file)MIDDLEWARE=['sales.middleware.sales.SalesMiddleware',# here'django.middleware.security.SecurityMiddleware','...']Step 3. Add sales context processors (in settings.py file)TEMPLATES=[{'OPTIONS':{'context_processors':['...','django.contrib.messages.context_processors.messages','sales.context_processors.sales',# here],},},]Step 4. Customize sales settings (in settings.py file) (optional)The defaults are:SALES_LINK_PARAMETER='sales'SALES_DEFAULT_ID=1# ?sales=1SALES_COOKIE_NAME='sales'SALES_COOKIE_MAX_AGE=3600# 1 hourSALES_MODEL_FROM='django.contrib.auth.models'SALES_MODEL_IMPORT='User'# from SALES_MODEL_FROM import SALES_MODEL_IMPORTIn version 0.0.1, django-sales makes use of django.contrib.auth.models.User model, which can be easily extended according to your needs. (e.g. Add a phone number field)
From version 0.1.0, django-sales allows developer to specify the Sales model to lookup sales, partners and affiliates.Step 5. Load sales tag (in any .html file){% load static %}
{% load sales %}  # hereStep 6. Build sales links (in any .html file)<ahref="{% sales '/' %}">Home</a><ahref="{% sales '/contact' %}">Contact</a>Step 7. Display sales information (in relevant .html files)<ahref="mailto:{{ sales.email }}">Email</a><p>{{ sales.first_name }} {{ sales.last_name }}</p>ContributingPull requests are welcome.LicenseMIT
Package: django-salesforce-oauth
Quick startAssuming you've already configured an app in your Salesforce instance to serve
as an OAuth provider, the following should get you up and running.Installpip install django-salesforce-oauthSettingsAdd the app to yourINSTALLED_APPSin your django settings (settings.py):INSTALLED_APPS=[# ..."django_salesforce_oauth",]Add the following required variables to yoursettings.py:SCOPES="YOUR SCOPES"# space delimited, e.g., "id api refresh_token"SFDC_CONSUMER_KEY="YOUR KEY"SFDC_CONSUMER_SECRET="YOUR SECRET"OAUTH_REDIRECT_URI="{YOUR DOMAIN}/oauth/callback/"# Optional, but Django provides a default you likely don't wantLOGIN_REDIRECT_URL="/"UrlsAdddjango-salesforce-oauth's urls to your mainurls.py.fromdjango.urlsimportpath,includeurlpatterns=[# ...path("oauth/",include("django_salesforce_oauth.urls")),]Then redirect sign-in requests to theoauthnamespace.View examplefromdjango.shortcutsimportredirectdefyour_view(request):returnredirect("oauth")# or "oauth-sandbox"Template example<ahref="{% url 'oauth' %}"class="btn btn-primary">Login</a>Advanced usageCustom callbackYou likely will want to customize what happens after the OAuth flow is complete instead of simply
getting or creating a user. This can be done by specifying the following in yoursettings.py.CUSTOM_CALLBACK="path.to.module.your_callback_function"your_callback_functionmust accept the following two arguments:the request object (useful in case you want to handle redirection yourself)the OAuth object (contains all token and user data)If you send the user to theoauthview with a query parameter calledstate, then you must
provide a third, optional argument to your custom callback function.the state parameter. Only requered if you redirect tooauthwith?state=valuein your
query params.An example signature is:defyour_callback_function(request,oauth,state=None):...If you do not return a redirect fromyour_callback_function, it's expected it will return
a user object. In this case the user will then be signed in and redirected tosettings.LOGIN_REDIRECT_URL(which you'll most likely want to set in yoursettings.py).Customizing the callback URIBy default the view behind theoauth-callbacknamespace, specified in thedjango_salesforce_oauth's app'surls.py, is what needs to matchsettings.OAUTH_REDIRECT_URI.
But this can be customized by pointing it to some other url and registering the view wherever
you'd like it declared.# urls.pyfromdjango_salesforce_oauth.viewsimportoauth_callbackurlpatterns=[# ...# pass {"domain": "test"} to use a sandboxpath("my/custom/url",oauth_callback,{"domain":"login"},name="custom-oauth-callback"),]Example projectThe example project provides a full example of how to use this package,
but since it's an integration, there's a few steps to actually running it.SFDCConfigure a SFDC OAuth app with which you can OAuth against..envPlace a.envfile inside theprojectfolder that contains the following keys
from the OAuth app you configured above:SFDC_CONSUMER_KEY=some_key
SFDC_CONSUMER_SECRET=secret_stuffdjangorun migrations and start the server!This project usespoetryfor dependency management
and packaging.