Skip to content

Commit 53feea0

Browse files
committed
add webapps
1 parent 3ee68b9 commit 53feea0

File tree

24 files changed

+610
-0
lines changed

24 files changed

+610
-0
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
*.mo
2+
*.vo
3+
*.pyc
4+
venv

webapps/django/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
## Steps:
2+
3+
### Installation
4+
5+
```console
6+
pip install Django
7+
django-admin startproject todoapp
8+
```
9+
10+
### Start
11+
12+
```console
13+
python manage.py migrate
14+
python manage.py runserver
15+
python manage.py startapp todolist
16+
```
17+
18+
- add 'todolist' to INSTALLED_APPS
19+
20+
### Add views
21+
- implement todolist.views.py and create todolist.urls.py
22+
- add urls to todoapp.urls.py
23+
24+
### Add templates
25+
- add templates folder and file
26+
- add "templates" to DIR in settings.py
27+
- modify view: return render...
28+
29+
### Add models
30+
- implement todolist.models.py
31+
32+
### Put together
33+
```console
34+
manage.py makemigrations
35+
python manage.py migrate
36+
python manage.py createsuperuser
37+
```
38+
39+
- Adding models to the administration site:
40+
- todolist.admin.py: admin.site.register(Todo)
41+
- login to admin
42+
43+
### add template
44+
- add {% csrf_token %} to template
45+
46+
### CRUD
47+
- implement views

webapps/django/todoapp/manage.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env python
2+
"""Django's command-line utility for administrative tasks."""
3+
import os
4+
import sys
5+
6+
7+
def main():
8+
"""Run administrative tasks."""
9+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'todoapp.settings')
10+
try:
11+
from django.core.management import execute_from_command_line
12+
except ImportError as exc:
13+
raise ImportError(
14+
"Couldn't import Django. Are you sure it's installed and "
15+
"available on your PYTHONPATH environment variable? Did you "
16+
"forget to activate a virtual environment?"
17+
) from exc
18+
execute_from_command_line(sys.argv)
19+
20+
21+
if __name__ == '__main__':
22+
main()
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<title>Todo App</title>
8+
9+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
10+
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
11+
</head>
12+
13+
<body>
14+
<div style="margin-top: 50px;" class="ui container">
15+
<h1 class="ui center aligned header">To Do App</h1>
16+
17+
<form class="ui form" action="/add" method="post">
18+
{% csrf_token %}
19+
<div class="field">
20+
<label>Todo Title</label>
21+
<input type="text" name="title" placeholder="Enter Todo..."><br>
22+
</div>
23+
<button class="ui blue button" type="submit">Add</button>
24+
</form>
25+
26+
<hr>
27+
28+
{% for todo in todo_list %}
29+
<div class="ui segment">
30+
<p class="ui big header">{{ todo.id }} | {{ todo.title }}</p>
31+
32+
{% if todo.complete == False %}
33+
<span class="ui gray label">Not Complete</span>
34+
{% else %}
35+
<span class="ui green label">Completed</span>
36+
{% endif %}
37+
38+
<a class="ui blue button" href="/update/{{ todo.id }}">Update</a>
39+
<a class="ui red button" href="/delete/{{ todo.id }}">Delete</a>
40+
</div>
41+
{% endfor %}
42+
</div>
43+
</body>
44+
45+
</html>

webapps/django/todoapp/todoapp/__init__.py

Whitespace-only changes.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"""
2+
ASGI config for todoapp project.
3+
4+
It exposes the ASGI callable as a module-level variable named ``application``.
5+
6+
For more information on this file, see
7+
https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/
8+
"""
9+
10+
import os
11+
12+
from django.core.asgi import get_asgi_application
13+
14+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'todoapp.settings')
15+
16+
application = get_asgi_application()
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
"""
2+
Django settings for todoapp project.
3+
4+
Generated by 'django-admin startproject' using Django 4.0.1.
5+
6+
For more information on this file, see
7+
https://docs.djangoproject.com/en/4.0/topics/settings/
8+
9+
For the full list of settings and their values, see
10+
https://docs.djangoproject.com/en/4.0/ref/settings/
11+
"""
12+
13+
from pathlib import Path
14+
15+
# Build paths inside the project like this: BASE_DIR / 'subdir'.
16+
BASE_DIR = Path(__file__).resolve().parent.parent
17+
18+
19+
# Quick-start development settings - unsuitable for production
20+
# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/
21+
22+
# SECURITY WARNING: keep the secret key used in production secret!
23+
SECRET_KEY = 'django-insecure-8up6eur7!aw%w+h_w5!i)=)k1#!lclxbq6@u!5x5z$gwju-$*1'
24+
25+
# SECURITY WARNING: don't run with debug turned on in production!
26+
DEBUG = True
27+
28+
ALLOWED_HOSTS = []
29+
30+
31+
# Application definition
32+
33+
INSTALLED_APPS = [
34+
'django.contrib.admin',
35+
'django.contrib.auth',
36+
'django.contrib.contenttypes',
37+
'django.contrib.sessions',
38+
'django.contrib.messages',
39+
'django.contrib.staticfiles',
40+
'todolist'
41+
]
42+
43+
MIDDLEWARE = [
44+
'django.middleware.security.SecurityMiddleware',
45+
'django.contrib.sessions.middleware.SessionMiddleware',
46+
'django.middleware.common.CommonMiddleware',
47+
'django.middleware.csrf.CsrfViewMiddleware',
48+
'django.contrib.auth.middleware.AuthenticationMiddleware',
49+
'django.contrib.messages.middleware.MessageMiddleware',
50+
'django.middleware.clickjacking.XFrameOptionsMiddleware',
51+
]
52+
53+
ROOT_URLCONF = 'todoapp.urls'
54+
55+
TEMPLATES = [
56+
{
57+
'BACKEND': 'django.template.backends.django.DjangoTemplates',
58+
'DIRS': ["templates"],
59+
'APP_DIRS': True,
60+
'OPTIONS': {
61+
'context_processors': [
62+
'django.template.context_processors.debug',
63+
'django.template.context_processors.request',
64+
'django.contrib.auth.context_processors.auth',
65+
'django.contrib.messages.context_processors.messages',
66+
],
67+
},
68+
},
69+
]
70+
71+
WSGI_APPLICATION = 'todoapp.wsgi.application'
72+
73+
74+
# Database
75+
# https://docs.djangoproject.com/en/4.0/ref/settings/#databases
76+
77+
DATABASES = {
78+
'default': {
79+
'ENGINE': 'django.db.backends.sqlite3',
80+
'NAME': BASE_DIR / 'db.sqlite3',
81+
}
82+
}
83+
84+
85+
# Password validation
86+
# https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators
87+
88+
AUTH_PASSWORD_VALIDATORS = [
89+
{
90+
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
91+
},
92+
{
93+
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
94+
},
95+
{
96+
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
97+
},
98+
{
99+
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
100+
},
101+
]
102+
103+
104+
# Internationalization
105+
# https://docs.djangoproject.com/en/4.0/topics/i18n/
106+
107+
LANGUAGE_CODE = 'en-us'
108+
109+
TIME_ZONE = 'UTC'
110+
111+
USE_I18N = True
112+
113+
USE_TZ = True
114+
115+
116+
# Static files (CSS, JavaScript, Images)
117+
# https://docs.djangoproject.com/en/4.0/howto/static-files/
118+
119+
STATIC_URL = 'static/'
120+
121+
# Default primary key field type
122+
# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field
123+
124+
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"""todoapp URL Configuration
2+
3+
The `urlpatterns` list routes URLs to views. For more information please see:
4+
https://docs.djangoproject.com/en/4.0/topics/http/urls/
5+
Examples:
6+
Function views
7+
1. Add an import: from my_app import views
8+
2. Add a URL to urlpatterns: path('', views.home, name='home')
9+
Class-based views
10+
1. Add an import: from other_app.views import Home
11+
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
12+
Including another URLconf
13+
1. Import the include() function: from django.urls import include, path
14+
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
15+
"""
16+
from django.contrib import admin
17+
from django.urls import path, include
18+
19+
20+
urlpatterns = [
21+
path('admin/', admin.site.urls),
22+
path('', include('todolist.urls')),
23+
]
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"""
2+
WSGI config for todoapp project.
3+
4+
It exposes the WSGI callable as a module-level variable named ``application``.
5+
6+
For more information on this file, see
7+
https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/
8+
"""
9+
10+
import os
11+
12+
from django.core.wsgi import get_wsgi_application
13+
14+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'todoapp.settings')
15+
16+
application = get_wsgi_application()

webapps/django/todoapp/todolist/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)