Skip to content

Commit d50e906

Browse files
committed
Formatting.
1 parent 060df27 commit d50e906

36 files changed

+762
-312
lines changed

Makefile

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
SRCPATH := $(CURDIR)
2+
PROJECTNAME := $(shell basename $(CURDIR))
3+
4+
define HELP
5+
Manage $(PROJECTNAME). Usage:
6+
7+
make run - Run $(PROJECTNAME).
8+
make deploy - Install requirements and run app for the first time.
9+
make update - Update pip dependencies via Python Poetry.
10+
make format - Format code with Python's `Black` library.
11+
make clean - Remove cached files and lock files.
12+
endef
13+
export HELP
14+
15+
.PHONY: run deploy update format clean help
16+
17+
18+
requirements: .requirements.txt
19+
env: .venv/bin/activate
20+
21+
22+
.requirements.txt: requirements.txt
23+
$(shell . .venv/bin/activate && pip install -r requirements.txt)
24+
25+
26+
all help:
27+
@echo "$$HELP"
28+
29+
30+
.PHONY: run
31+
run: env
32+
$(shell . .venv/bin/activate && flask run)
33+
34+
35+
.PHONY: deploy
36+
deploy:
37+
$(shell . ./deploy.sh)
38+
39+
40+
.PHONY: update
41+
update: env
42+
.venv/bin/python3 -m pip install -U pip
43+
poetry update
44+
poetry export -f requirements.txt --output requirements.txt --without-hashes
45+
46+
47+
.PHONY: format
48+
format: env
49+
$(shell . .venv/bin/activate && isort -rc ./)
50+
$(shell . .venv/bin/activate && black ./)
51+
52+
53+
.PHONY: clean
54+
clean:
55+
find . -name '*.pyc' -delete
56+
find . -name '__pycache__' -delete
57+
find . -name 'poetry.lock' -delete
58+
find . -name 'Pipefile.lock' -delete

Pipfile

-15
This file was deleted.

Pipfile.lock

-78
This file was deleted.

class_views/apps.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33

44
class ClassviewsConfig(AppConfig):
5-
name = 'class_views'
5+
name = "class_views"

class_views/forms.py

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
class ContactForm(forms.Form):
66
"""Email submission form."""
7+
78
subject = forms.CharField(required=True, label="Subject line", strip=True)
89
email = forms.EmailField(required=True, label="Your email")
910
message = forms.CharField(widget=forms.Textarea)

class_views/migrations/0001_initial.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@ class Migration(migrations.Migration):
77

88
initial = True
99

10-
dependencies = [
11-
]
10+
dependencies = []
1211

1312
operations = [
1413
migrations.CreateModel(
15-
name='PostModel',
14+
name="PostModel",
1615
fields=[
17-
('id', models.AutoField(primary_key=True, serialize=False)),
16+
("id", models.AutoField(primary_key=True, serialize=False)),
1817
],
1918
),
2019
]

class_views/models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44

55
class PostModel(models.Model):
6-
id = models.AutoField(primary_key=True)
6+
id = models.AutoField(primary_key=True)

class_views/urls.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
"""Class-based view example URLs."""
22
from django.conf import settings
3-
from django.urls import path
43
from django.conf.urls.static import static
4+
from django.urls import path
55

66
from . import views
77

88
urlpatterns = [
9-
path('generic', views.GenericClassView.as_view(), name='generic_view'),
10-
path('template', views.TemplateClassView.as_view(), name='template_view'),
11-
path('list', views.ProtectedClassView.as_view(), name='protected_view'),
12-
path('redirect', views.RedirectClassView.as_view(), name='redirect_view'),
13-
path('contact', views.ContactView.as_view(), name='contact_view'),
9+
path("generic", views.GenericClassView.as_view(), name="generic_view"),
10+
path("template", views.TemplateClassView.as_view(), name="template_view"),
11+
path("list", views.ProtectedClassView.as_view(), name="protected_view"),
12+
path("redirect", views.RedirectClassView.as_view(), name="redirect_view"),
13+
path("contact", views.ContactView.as_view(), name="contact_view"),
1414
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

class_views/views.py

+25-21
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,48 @@
11
"""Examples of class-based views."""
22
from datetime import datetime
33

4-
from django.http import HttpResponseRedirect
54
from django.conf import settings
5+
from django.contrib.auth.mixins import PermissionRequiredMixin
6+
from django.core.mail import send_mail
7+
from django.http import HttpResponseRedirect
8+
from django.shortcuts import get_object_or_404, render
69
from django.views import View
710
from django.views.generic import RedirectView
811
from django.views.generic.base import TemplateView
912
from django.views.generic.edit import FormView
10-
from django.shortcuts import render, get_object_or_404
11-
from django.contrib.auth.mixins import PermissionRequiredMixin
12-
from django.core.mail import send_mail
1313

1414
from .forms import ContactForm
1515
from .models import PostModel
1616

1717

1818
class GenericClassView(View):
1919
"""Generic class-based view."""
20-
initial = {'key': 'value'}
20+
21+
initial = {"key": "value"}
2122

2223
def get(self, request, *args, **kwargs):
2324
posts = PostModel.get
24-
return render(request, self.template_name, {'form': 'tbh'})
25+
return render(request, self.template_name, {"form": "tbh"})
2526

2627
def post(self, request, *args, **kwargs):
2728
form = self.form_class(request.POST)
2829
if form.is_valid():
29-
return HttpResponseRedirect('/success/')
30+
return HttpResponseRedirect("/success/")
3031

31-
return render(request, self.template_name, {'form': form})
32+
return render(request, self.template_name, {"form": form})
3233

3334

3435
class TemplateClassView(TemplateView):
3536
"""Serve a page template."""
36-
template_name = 'class_views/template_class_view.html'
37+
38+
template_name = "class_views/template_class_view.html"
3739

3840
# change the get method to get_context_data
3941
def get_context_data(self, **kwargs):
4042
context = super().get_context_data(**kwargs)
41-
context['now'] = datetime.now()
42-
context['title'] = 'Class-based Template View'
43-
context['path'] = self.template_name
43+
context["now"] = datetime.now()
44+
context["title"] = "Class-based Template View"
45+
context["path"] = self.template_name
4446
return context
4547

4648

@@ -49,28 +51,30 @@ class ProtectedClassView(PermissionRequiredMixin, TemplateView):
4951

5052
def get_context_data(self, **kwargs):
5153
context = super().get_context_data(**kwargs)
52-
context['now'] = datetime.now()
54+
context["now"] = datetime.now()
5355
return context
5456

5557

5658
class RedirectClassView(RedirectView):
5759
"""Permanent redirect view."""
60+
5861
# https://docs.djangoproject.com/en/3.0/ref/class-based-views/base/#redirectview
5962
permanent = False
6063
query_string = True
61-
pattern_name = 'article-detail'
64+
pattern_name = "article-detail"
6265

6366
def get_redirect_url(self, *args, **kwargs):
64-
article = get_object_or_404(PostModel, pk=kwargs['pk'])
67+
article = get_object_or_404(PostModel, pk=kwargs["pk"])
6568
article.update_counter()
6669
return super().get_redirect_url(*args, **kwargs)
6770

6871

6972
class ContactView(FormView):
7073
"""Form-based view."""
71-
template_name = 'class_views/contact_class_template.html'
74+
75+
template_name = "class_views/contact_class_template.html"
7276
form_class = ContactForm
73-
success_url = '/success/'
77+
success_url = "/success/"
7478

7579
def get(self, request, *args, **kwargs):
7680
context = self.get_context_data(**kwargs)
@@ -83,13 +87,13 @@ def form_valid(self, form):
8387
@staticmethod
8488
def send_email_message(valid_data):
8589
send_mail(
86-
valid_data.get('subject'),
87-
valid_data.get('email'),
88-
valid_data.get('message'),
90+
valid_data.get("subject"),
91+
valid_data.get("email"),
92+
valid_data.get("message"),
8993
[settings.SENDGRID_TO_EMAIL],
9094
fail_silently=True,
9195
)
9296

9397
def form_invalid(self, form):
9498
"""If the form is invalid, render the invalid form."""
95-
return self.render_to_response(self.get_context_data(form=form))
99+
return self.render_to_response(self.get_context_data(form=form))

deploy.sh

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/bash
2+
3+
if [ -d ".venv" ]
4+
then
5+
. .venv/bin/activate
6+
pip install -r requirements.txt
7+
python3 wsgi.py
8+
else
9+
python3 -m venv .venv
10+
. .venv/bin/activate
11+
python3 -m pip install --upgrade pip
12+
pip install -r requirements.txt
13+
python3 wsgi.py
14+
fi

0 commit comments

Comments
 (0)