mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-11-14 13:47:07 +03:00
commit
33322b3f99
|
@ -58,6 +58,7 @@ Listed in alphabetical order.
|
|||
Andy Rose
|
||||
Anna Callahan `@jazztpt`_
|
||||
Antonia Blair `@antoniablair`_ @antoniablairart
|
||||
Anuj Bansal `@ahhda`_
|
||||
Arcuri Davide `@dadokkio`_
|
||||
Areski Belaid `@areski`_
|
||||
Ashley Camba
|
||||
|
@ -70,6 +71,7 @@ Listed in alphabetical order.
|
|||
Bouke Haarsma
|
||||
Brent Payne `@brentpayne`_ @brentpayne
|
||||
Burhan Khalid `@burhan`_ @burhan
|
||||
Carl Johnson `@carlmjohnson`_ @carlmjohnson
|
||||
Catherine Devlin `@catherinedevlin`_
|
||||
Cédric Gaspoz `@cgaspoz`_
|
||||
Charlie Smith `@chuckus`_
|
||||
|
@ -78,6 +80,7 @@ Listed in alphabetical order.
|
|||
Chris Franklin `@hairychris`_
|
||||
Chris Pappalardo `@ChrisPappalardo`_
|
||||
Christopher Clarke `@chrisdev`_
|
||||
Cole Mackenzie `@cmackenzie1`_
|
||||
Collederas `@Collederas`_
|
||||
Cristian Vargas `@cdvv7788`_
|
||||
Cullen Rhodes `@c-rhodes`_
|
||||
|
@ -85,6 +88,7 @@ Listed in alphabetical order.
|
|||
Daniel Hepper `@dhepper`_ @danielhepper
|
||||
Daniele Tricoli `@eriol`_
|
||||
David Díaz `@ddiazpinto`_ @DavidDiazPinto
|
||||
Davit Tovmasyan `@davitovmasyan`_
|
||||
Davur Clementsen `@dsclementsen`_ @davur
|
||||
Delio Castillo `@jangeador`_ @jangeador
|
||||
Denis Orehovsky `@apirobot`_
|
||||
|
@ -106,6 +110,7 @@ Listed in alphabetical order.
|
|||
Irfan Ahmad `@erfaan`_ @erfaan
|
||||
Jan Van Bruggen `@jvanbrug`_
|
||||
Jens Nilsson `@phiberjenz`_
|
||||
Jerome Leclanche `@jleclanche`_ @Adys
|
||||
Jimmy Gitonga `@afrowave`_ @afrowave
|
||||
John Cass `@jcass77`_ @cass_john
|
||||
Julien Almarcha `@sladinji`_
|
||||
|
@ -119,6 +124,7 @@ Listed in alphabetical order.
|
|||
Krzysztof Szumny `@noisy`_
|
||||
Krzysztof Żuraw `@krzysztofzuraw`_
|
||||
Leonardo Jimenez `@xpostudio4`_
|
||||
Leo Zhou `@glasslion`_
|
||||
Lin Xianyi `@iynaix`_
|
||||
Luis Nell `@originell`_
|
||||
Lukas Klein
|
||||
|
@ -140,6 +146,7 @@ Listed in alphabetical order.
|
|||
Pablo `@oubiga`_
|
||||
Parbhat Puri `@parbhat`_
|
||||
Peter Bittner `@bittner`_
|
||||
Peter Coles `@mrcoles`_
|
||||
Pierre Chiquet `@pchiquet`_
|
||||
Raphael Pierzina `@hackebrot`_
|
||||
Raony Guimarães Corrêa `@raonyguimaraes`_
|
||||
|
@ -162,6 +169,7 @@ Listed in alphabetical order.
|
|||
Tom Atkins `@knitatoms`_
|
||||
Tom Offermann
|
||||
Travis McNeill `@Travistock`_ @tavistock_esq
|
||||
Tubo Shi `@Tubo`_
|
||||
Umair Ashraf `@umrashrf`_ @fabumair
|
||||
Vitaly Babiy
|
||||
Vivian Guillen `@viviangb`_
|
||||
|
@ -169,6 +177,8 @@ Listed in alphabetical order.
|
|||
William Archinal `@archinal`_
|
||||
Yaroslav Halchenko
|
||||
Denis Bobrov `@delneg`_
|
||||
Philipp Matthies `@canonnervio`_
|
||||
Vadim Iskuchekov `@Egregors`_ @egregors
|
||||
========================== ============================ ==============
|
||||
|
||||
.. _@a7p: https://github.com/a7p
|
||||
|
@ -191,6 +201,7 @@ Listed in alphabetical order.
|
|||
.. _@burhan: https://github.com/burhan
|
||||
.. _@c-rhodes: https://github.com/c-rhodes
|
||||
.. _@caffodian: https://github.com/caffodian
|
||||
.. _@carlmjohnson: https://github.com/carlmjohnson
|
||||
.. _@catherinedevlin: https://github.com/catherinedevlin
|
||||
.. _@ccurvey: https://github.com/ccurvey
|
||||
.. _@cdvv7788: https://github.com/cdvv7788
|
||||
|
@ -198,7 +209,9 @@ Listed in alphabetical order.
|
|||
.. _@chrisdev: https://github.com/chrisdev
|
||||
.. _@ChrisPappalardo: https://github.com/ChrisPappalardo
|
||||
.. _@chuckus: https://github.com/chuckus
|
||||
.. _@cmackenzie1: https://github.com/cmackenzie1
|
||||
.. _@Collederas: https://github.com/Collederas
|
||||
.. _@davitovmasyan: https://github.com/davitovmasyan
|
||||
.. _@ddiazpinto: https://github.com/ddiazpinto
|
||||
.. _@dezoito: https://github.com/dezoito
|
||||
.. _@dhepper: https://github.com/dhepper
|
||||
|
@ -214,14 +227,16 @@ Listed in alphabetical order.
|
|||
.. _@garry-cairns: https://github.com/garry-cairns
|
||||
.. _@garrypolley: https://github.com/garrypolley
|
||||
.. _@goldhand: https://github.com/goldhand
|
||||
.. _@glasslion: https://github.com/glasslion
|
||||
.. _@hackebrot: https://github.com/hackebrot
|
||||
.. _@hairychris: https://github.com/hairychris
|
||||
.. _@hendrikschneider https://github.com/hendrikschneider
|
||||
.. _@hendrikschneider: https://github.com/hendrikschneider
|
||||
.. _@hjwp: https://github.com/hjwp
|
||||
.. _@IanLee1521: https://github.com/IanLee1521
|
||||
.. _@ikkebr: https://github.com/ikkebr
|
||||
.. _@iynaix: https://github.com/iynaix
|
||||
.. _@jazztpt: https://github.com/jazztpt
|
||||
.. _@jleclanche: https://github.com/jleclanche
|
||||
.. _@juliocc: https://github.com/juliocc
|
||||
.. _@jvanbrug: https://github.com/jvanbrug
|
||||
.. _@ka7eh: https://github.com/ka7eh
|
||||
|
@ -259,6 +274,7 @@ Listed in alphabetical order.
|
|||
.. _@timfreund: https://github.com/timfreund
|
||||
.. _@Travistock: https://github.com/Tavistock
|
||||
.. _@trungdong: https://github.com/trungdong
|
||||
.. _@Tubo: https://github.com/tubo
|
||||
.. _@viviangb: https://github.com/viviangb
|
||||
.. _@xpostudio4: https://github.com/xpostudio4
|
||||
.. _@yunti: https://github.com/yunti
|
||||
|
@ -278,6 +294,7 @@ Listed in alphabetical order.
|
|||
.. _@delneg: https://github.com/delneg
|
||||
.. _@purplediane: https://github.com/purplediane
|
||||
.. _@umrashrf: https://github.com/umrashrf
|
||||
.. _@ahhda: https://github.com/ahhda
|
||||
Special Thanks
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"project_name": "My Awesome Project",
|
||||
"project_slug": "{{ cookiecutter.project_name.lower()|replace(' ', '_')|replace('-', '_') }}",
|
||||
"project_slug": "{{ cookiecutter.project_name.lower()|replace(' ', '_')|replace('-', '_')|replace('.', '_')|trim() }}",
|
||||
"description": "Behold My Awesome Project!",
|
||||
"author_name": "Daniel Roy Greenfeld",
|
||||
"domain_name": "example.com",
|
||||
|
@ -18,6 +18,7 @@
|
|||
"use_pycharm": "n",
|
||||
"use_docker": "n",
|
||||
"postgresql_version": [
|
||||
"10.5",
|
||||
"10.4",
|
||||
"10.3",
|
||||
"10.2",
|
||||
|
|
|
@ -10,6 +10,8 @@ Run these commands to deploy the project to Heroku:
|
|||
heroku create --buildpack https://github.com/heroku/heroku-buildpack-python
|
||||
|
||||
heroku addons:create heroku-postgresql:hobby-dev
|
||||
# On Windows use double quotes for the time zone, e.g.
|
||||
# heroku pg:backups schedule --at "02:00 America/Los_Angeles" DATABASE_URL
|
||||
heroku pg:backups schedule --at '02:00 America/Los_Angeles' DATABASE_URL
|
||||
heroku pg:promote DATABASE_URL
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ SSL (Secure Sockets Layer) is a standard security technology for establishing an
|
|||
|
||||
It is always better to deploy a site behind HTTPS and will become crucial as the web services extend to the IoT (Internet of Things). For this reason, we have set up a number of security defaults to help make your website secure:
|
||||
|
||||
* If you are not using a subdomain of the domain name set in the project, then remember to put the your staging/production IP address in the ``DJANGO_ALLOWED_HOSTS`` environment variable (see :ref:`settings`) before you deploy your website. Failure to do this will mean you will not have access to your website through the HTTP protocol.
|
||||
* If you are not using a subdomain of the domain name set in the project, then remember to put your staging/production IP address in the ``DJANGO_ALLOWED_HOSTS`` environment variable (see :ref:`settings`) before you deploy your website. Failure to do this will mean you will not have access to your website through the HTTP protocol.
|
||||
|
||||
* Access to the Django admin is set up by default to require HTTPS in production or once *live*.
|
||||
|
||||
|
|
|
@ -9,4 +9,7 @@ This page contains some advice about errors and problems commonly encountered du
|
|||
|
||||
#. Internal server error on user registration: make sure you have configured the mail backend (e.g. Mailgun) by adding the API key and sender domain
|
||||
|
||||
#. New apps not getting created in project root: This is the expected behavior, because cookiecutter-django does not change the way that django startapp works, you'll have to fix this manually (see `#1725`_)
|
||||
|
||||
.. _#528: https://github.com/pydanny/cookiecutter-django/issues/528#issuecomment-212650373
|
||||
.. _#1725: https://github.com/pydanny/cookiecutter-django/issues/1725#issuecomment-407493176
|
||||
|
|
|
@ -71,6 +71,9 @@ def remove_utility_files():
|
|||
def remove_heroku_files():
|
||||
file_names = ["Procfile", "runtime.txt", "requirements.txt"]
|
||||
for file_name in file_names:
|
||||
if file_name == "requirements.txt" and "{{ cookiecutter.use_travisci }}".lower() == "y":
|
||||
# don't remove the file if we are using travisci but not using heroku
|
||||
continue
|
||||
os.remove(file_name)
|
||||
|
||||
|
||||
|
|
|
@ -4,10 +4,10 @@ binaryornot==0.4.4
|
|||
|
||||
# Code quality
|
||||
# ------------------------------------------------------------------------------
|
||||
flake8==3.5.0
|
||||
flake8==3.6.0
|
||||
|
||||
# Testing
|
||||
# ------------------------------------------------------------------------------
|
||||
tox==3.5.2
|
||||
pytest==3.8.2
|
||||
tox==3.6.0
|
||||
pytest==4.0.2
|
||||
pytest-cookies==0.3.0
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# General
|
||||
# ------------------------------------------------------------------------------
|
||||
USE_DOCKER=yes
|
||||
IPYTHONDIR=/app/.ipython
|
||||
|
||||
# Redis
|
||||
# ------------------------------------------------------------------------------
|
||||
|
|
4
{{cookiecutter.project_slug}}/.gitignore
vendored
4
{{cookiecutter.project_slug}}/.gitignore
vendored
|
@ -343,3 +343,7 @@ MailHog
|
|||
{{ cookiecutter.project_slug }}/media/
|
||||
|
||||
.pytest_cache/
|
||||
|
||||
{% if cookiecutter.use_docker == 'y' %}
|
||||
.ipython/
|
||||
{%- endif %}
|
||||
|
|
|
@ -7,6 +7,7 @@ www.{% raw %}{$DOMAIN_NAME}{% endraw %} {
|
|||
header_upstream Host {host}
|
||||
header_upstream X-Real-IP {remote}
|
||||
header_upstream X-Forwarded-Proto {scheme}
|
||||
header_upstream X-CSRFToken {~csrftoken}
|
||||
}
|
||||
log stdout
|
||||
errors stdout
|
||||
|
|
|
@ -209,6 +209,17 @@ FIXTURE_DIRS = (
|
|||
str(APPS_DIR.path('fixtures')),
|
||||
)
|
||||
|
||||
# SECURITY
|
||||
# ------------------------------------------------------------------------------
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-httponly
|
||||
SESSION_COOKIE_HTTPONLY = True
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#csrf-cookie-httponly
|
||||
CSRF_COOKIE_HTTPONLY = True
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#secure-browser-xss-filter
|
||||
SECURE_BROWSER_XSS_FILTER = True
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#x-frame-options
|
||||
X_FRAME_OPTIONS = 'DENY'
|
||||
|
||||
# EMAIL
|
||||
# ------------------------------------------------------------------------------
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#email-backend
|
||||
|
|
|
@ -41,12 +41,8 @@ SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
|
|||
SECURE_SSL_REDIRECT = env.bool('DJANGO_SECURE_SSL_REDIRECT', default=True)
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-secure
|
||||
SESSION_COOKIE_SECURE = True
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-httponly
|
||||
SESSION_COOKIE_HTTPONLY = True
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#csrf-cookie-secure
|
||||
CSRF_COOKIE_SECURE = True
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#csrf-cookie-httponly
|
||||
CSRF_COOKIE_HTTPONLY = True
|
||||
# https://docs.djangoproject.com/en/dev/topics/security/#ssl-https
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#secure-hsts-seconds
|
||||
# TODO: set this to 60 seconds first and then to 518400 once you prove the former works
|
||||
|
@ -57,10 +53,6 @@ SECURE_HSTS_INCLUDE_SUBDOMAINS = env.bool('DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS
|
|||
SECURE_HSTS_PRELOAD = env.bool('DJANGO_SECURE_HSTS_PRELOAD', default=True)
|
||||
# https://docs.djangoproject.com/en/dev/ref/middleware/#x-content-type-options-nosniff
|
||||
SECURE_CONTENT_TYPE_NOSNIFF = env.bool('DJANGO_SECURE_CONTENT_TYPE_NOSNIFF', default=True)
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#secure-browser-xss-filter
|
||||
SECURE_BROWSER_XSS_FILTER = True
|
||||
# https://docs.djangoproject.com/en/dev/ref/settings/#x-frame-options
|
||||
X_FRAME_OPTIONS = 'DENY'
|
||||
|
||||
# STORAGES
|
||||
# ------------------------------------------------------------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
pytz==2018.5 # https://github.com/stub42/pytz
|
||||
pytz==2018.7 # https://github.com/stub42/pytz
|
||||
python-slugify==1.2.6 # https://github.com/un33k/python-slugify
|
||||
Pillow==5.3.0 # https://github.com/python-pillow/Pillow
|
||||
{%- if cookiecutter.use_compressor == "y" %}
|
||||
|
@ -6,11 +6,11 @@ rcssmin==1.0.6{% if cookiecutter.windows == 'y' %} --install-option="--without-c
|
|||
{%- endif %}
|
||||
argon2-cffi==18.3.0 # https://github.com/hynek/argon2_cffi
|
||||
{%- if cookiecutter.use_whitenoise == 'y' %}
|
||||
whitenoise==4.1 # https://github.com/evansd/whitenoise
|
||||
whitenoise==4.1.2 # https://github.com/evansd/whitenoise
|
||||
{%- endif %}
|
||||
redis>=2.10.5 # https://github.com/antirez/redis
|
||||
redis>=2.10.6, < 3 # pyup: < 3 # https://github.com/antirez/redis
|
||||
{%- if cookiecutter.use_celery == "y" %}
|
||||
celery==4.2.1 # pyup: <5.0 # https://github.com/celery/celery
|
||||
celery==4.2.1 # pyup: < 5.0 # https://github.com/celery/celery
|
||||
{%- if cookiecutter.use_docker == 'y' %}
|
||||
flower==0.9.2 # https://github.com/mher/flower
|
||||
{%- endif %}
|
||||
|
@ -26,8 +26,8 @@ django-crispy-forms==1.7.2 # https://github.com/django-crispy-forms/django-cris
|
|||
{%- if cookiecutter.use_compressor == "y" %}
|
||||
django-compressor==2.2 # https://github.com/django-compressor/django-compressor
|
||||
{%- endif %}
|
||||
django-redis==4.9.0 # https://github.com/niwinz/django-redis
|
||||
django-redis==4.10.0 # https://github.com/niwinz/django-redis
|
||||
|
||||
# Django REST Framework
|
||||
djangorestframework==3.8.2 # https://github.com/encode/django-rest-framework
|
||||
djangorestframework==3.9.0 # https://github.com/encode/django-rest-framework
|
||||
coreapi==2.3.3 # https://github.com/core-api/python-client
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
|
||||
Werkzeug==0.14.1 # https://github.com/pallets/werkzeug
|
||||
ipdb==0.11 # https://github.com/gotcha/ipdb
|
||||
Sphinx==1.8.1 # https://github.com/sphinx-doc/sphinx
|
||||
Sphinx==1.8.2 # https://github.com/sphinx-doc/sphinx
|
||||
{%- if cookiecutter.use_docker == 'y' %}
|
||||
psycopg2==2.7.4 --no-binary psycopg2 # https://github.com/psycopg/psycopg2
|
||||
{%- else %}
|
||||
psycopg2-binary==2.7.5 # https://github.com/psycopg/psycopg2
|
||||
psycopg2-binary==2.7.6.1 # https://github.com/psycopg/psycopg2
|
||||
{%- endif %}
|
||||
|
||||
# Testing
|
||||
# ------------------------------------------------------------------------------
|
||||
mypy==0.630 # https://github.com/python/mypy
|
||||
pytest==3.8.2 # https://github.com/pytest-dev/pytest
|
||||
pytest-sugar==0.9.1 # https://github.com/Frozenball/pytest-sugar
|
||||
mypy==0.650 # https://github.com/python/mypy
|
||||
pytest==4.0.2 # https://github.com/pytest-dev/pytest
|
||||
pytest-sugar==0.9.2 # https://github.com/Frozenball/pytest-sugar
|
||||
|
||||
# Code quality
|
||||
# ------------------------------------------------------------------------------
|
||||
flake8==3.5.0 # https://github.com/PyCQA/flake8
|
||||
coverage==4.5.1 # https://github.com/nedbat/coveragepy
|
||||
flake8==3.6.0 # https://github.com/PyCQA/flake8
|
||||
coverage==4.5.2 # https://github.com/nedbat/coveragepy
|
||||
|
||||
# Django
|
||||
# ------------------------------------------------------------------------------
|
||||
factory-boy==2.11.1 # https://github.com/FactoryBoy/factory_boy
|
||||
|
||||
django-debug-toolbar==1.10.1 # https://github.com/jazzband/django-debug-toolbar
|
||||
django-extensions==2.1.3 # https://github.com/django-extensions/django-extensions
|
||||
django-debug-toolbar==1.11 # https://github.com/jazzband/django-debug-toolbar
|
||||
django-extensions==2.1.4 # https://github.com/django-extensions/django-extensions
|
||||
django-coverage-plugin==1.6.0 # https://github.com/nedbat/django_coverage_plugin
|
||||
pytest-django==3.4.3 # https://github.com/pytest-dev/pytest-django
|
||||
pytest-django==3.4.4 # https://github.com/pytest-dev/pytest-django
|
||||
|
|
|
@ -8,10 +8,10 @@ psycopg2==2.7.4 --no-binary psycopg2 # https://github.com/psycopg/psycopg2
|
|||
Collectfast==0.6.2 # https://github.com/antonagestam/collectfast
|
||||
{%- endif %}
|
||||
{%- if cookiecutter.use_sentry == "y" %}
|
||||
raven==6.9.0 # https://github.com/getsentry/raven-python
|
||||
raven==6.10.0 # https://github.com/getsentry/raven-python
|
||||
{%- endif %}
|
||||
|
||||
# Django
|
||||
# ------------------------------------------------------------------------------
|
||||
django-storages[boto3]==1.7.1 # https://github.com/jschneier/django-storages
|
||||
django-anymail[mailgun]==4.3 # https://github.com/anymail/django-anymail
|
||||
django-anymail[mailgun]==5.0 # https://github.com/anymail/django-anymail
|
|
@ -11,6 +11,11 @@ if not settings.configured:
|
|||
|
||||
|
||||
app = Celery('{{cookiecutter.project_slug}}')
|
||||
# Using a string here means the worker will not have to
|
||||
# pickle the object when using Windows.
|
||||
# - namespace='CELERY' means all celery-related configuration keys
|
||||
# should have a `CELERY_` prefix.
|
||||
app.config_from_object('django.conf:settings', namespace='CELERY')
|
||||
|
||||
|
||||
class CeleryAppConfig(AppConfig):
|
||||
|
@ -18,11 +23,6 @@ class CeleryAppConfig(AppConfig):
|
|||
verbose_name = 'Celery Config'
|
||||
|
||||
def ready(self):
|
||||
# Using a string here means the worker will not have to
|
||||
# pickle the object when using Windows.
|
||||
# - namespace='CELERY' means all celery-related configuration keys
|
||||
# should have a `CELERY_` prefix.
|
||||
app.config_from_object('django.conf:settings', namespace='CELERY')
|
||||
installed_apps = [app_config.name for app_config in apps.get_app_configs()]
|
||||
app.autodiscover_tasks(lambda: installed_apps, force=True)
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
<body>
|
||||
|
||||
<div class="m-b-1">
|
||||
<div class="mb-1">
|
||||
<nav class="navbar navbar-expand-md navbar-light bg-light">
|
||||
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
|
|
Loading…
Reference in New Issue
Block a user