From 73a35a922c07145d692c9e3ec31051fc572dfc7c Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 12:26:31 +0000 Subject: [PATCH 1/9] settings.py Added blog to installed apps --- blango/settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/blango/settings.py b/blango/settings.py index f9209bef27..e8a4505816 100644 --- a/blango/settings.py +++ b/blango/settings.py @@ -37,6 +37,7 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + "blog", ] MIDDLEWARE = [ From 18b3a56ffdc8751f1acdf1b57da1edba8da261f6 Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 12:27:25 +0000 Subject: [PATCH 2/9] .gitignore Added .gitignore for python, jupyter and django --- .gitignore | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..635beebf27 --- /dev/null +++ b/.gitignore @@ -0,0 +1,189 @@ +### JupyterNotebooks template +# gitignore template for Jupyter Notebooks +# website: http://jupyter.org/ + +.ipynb_checkpoints +*/.ipynb_checkpoints/* + +# IPython +profile_default/ +ipython_config.py + +# Remove previous ipynb_checkpoints +# git rm -r .ipynb_checkpoints/ + +### Python template +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook + +# IPython + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Django +db.* +migrations/ +.settings +*.pyc +__pycache__/ +myvenv/ +db.sqlite3 +/static +.DS_Store + +# codio +.codio +.codio/ +.guides/ +.guides From 2e817a129fd36b31f1088e1168a684a0d7fd018d Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 12:28:05 +0000 Subject: [PATCH 3/9] blog initial blog app --- blog/__init__.py | 0 blog/admin.py | 3 +++ blog/apps.py | 6 ++++++ blog/models.py | 3 +++ blog/tests.py | 3 +++ blog/views.py | 3 +++ 6 files changed, 18 insertions(+) create mode 100644 blog/__init__.py create mode 100644 blog/admin.py create mode 100644 blog/apps.py create mode 100644 blog/models.py create mode 100644 blog/tests.py create mode 100644 blog/views.py diff --git a/blog/__init__.py b/blog/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/blog/admin.py b/blog/admin.py new file mode 100644 index 0000000000..8c38f3f3da --- /dev/null +++ b/blog/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/blog/apps.py b/blog/apps.py new file mode 100644 index 0000000000..94788a5eac --- /dev/null +++ b/blog/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class BlogConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'blog' diff --git a/blog/models.py b/blog/models.py new file mode 100644 index 0000000000..71a8362390 --- /dev/null +++ b/blog/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/blog/tests.py b/blog/tests.py new file mode 100644 index 0000000000..7ce503c2dd --- /dev/null +++ b/blog/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/blog/views.py b/blog/views.py new file mode 100644 index 0000000000..91ea44a218 --- /dev/null +++ b/blog/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. From 910702a99d2ee4c6eb57222f4d3349aeeea60b7c Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 12:31:22 +0000 Subject: [PATCH 4/9] settings.py settings are modified to allow django app to run on codio --- blango/settings.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/blango/settings.py b/blango/settings.py index e8a4505816..02fc0525ac 100644 --- a/blango/settings.py +++ b/blango/settings.py @@ -9,7 +9,7 @@ For the full list of settings and their values, see https://docs.djangoproject.com/en/3.2/ref/settings/ """ - +import os from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. @@ -25,7 +25,15 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = [] +# settings to run django in codio +ALLOWED_HOSTS = ['*'] +X_FRAME_OPTIONS = 'ALLOW-FROM ' + os.environ.get('CODIO_HOSTNAME') + '-8000.codio.io' +CSRF_COOKIE_SAMESITE = None +CSRF_TRUSTED_ORIGINS = ['https://' + os.environ.get('CODIO_HOSTNAME') + '-8000.codio.io'] +CSRF_COOKIE_SECURE = True +SESSION_COOKIE_SECURE = True +CSRF_COOKIE_SAMESITE = 'None' +SESSION_COOKIE_SAMESITE = 'None' # Application definition @@ -44,10 +52,10 @@ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', + # 'django.middleware.csrf.CsrfViewMiddleware', # commented for codio 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', + # 'django.middleware.clickjacking.XFrameOptionsMiddleware', # commented for codio ] ROOT_URLCONF = 'blango.urls' From 244bd6ded114a92bb9f6725b885fde6ebd6ad044 Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 12:44:52 +0000 Subject: [PATCH 5/9] README.md added reerences-Refs --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 413b1810f6..d70ee2353c 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,7 @@ Starting point for the Advanced Django course. This is the equivalent of the fol ```bash $ django-admin.py startproject blango ``` + +# Refs +1) [django-sluggify](https://docs.djangoproject.com/en/3.2/ref/utils/#django.utils.text.slugify) +2) From a5c55e51fb68d6fe1c611e1610cd2a61a4c0a27c Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 12:45:37 +0000 Subject: [PATCH 6/9] blog models-Post and Tag 1) Added Post model 2) Added Tag model --- blog/models.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/blog/models.py b/blog/models.py index 71a8362390..9e04e55915 100644 --- a/blog/models.py +++ b/blog/models.py @@ -1,3 +1,24 @@ from django.db import models - +from django.conf import settings # Create your models here. + +class Tag(models.Model): + value = models.TextField(max_length=100) + + def __str__(self): + return self.value + + +class Post(models.Model): + author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT) + created_at = models.DateTimeField(auto_now_add=True) + modified_at = models.DateTimeField(auto_now=True) + published_at = models.DateTimeField(blank=True, null=True) + title = models.TextField(max_length=100) + slug = models.SlugField() + summary = models.TextField(max_length=500) + content = models.TextField() + tags = models.ManyToManyField(Tag, related_name="posts") + + def __str__(self): + return self.title \ No newline at end of file From fe9507799e52f50468fff722f94eea2b392617b7 Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 13:19:43 +0000 Subject: [PATCH 7/9] README.md Added references for Admin documentation --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d70ee2353c..52ff5514fa 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,6 @@ $ django-admin.py startproject blango # Refs 1) [django-sluggify](https://docs.djangoproject.com/en/3.2/ref/utils/#django.utils.text.slugify) -2) +2) [django-admin-documentation](https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#adminsite-objects) +3) [Django-Admin-Model-Documentation](https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#modeladmin-options) + From aed539778a6832e9f4d2952e04b62b1edfc39199 Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 13:20:35 +0000 Subject: [PATCH 8/9] blog/admin.py registered Tag to display in admin page configured Post and registered to display in admin page --- blog/admin.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/blog/admin.py b/blog/admin.py index 8c38f3f3da..4223a4085d 100644 --- a/blog/admin.py +++ b/blog/admin.py @@ -1,3 +1,10 @@ from django.contrib import admin - +from blog.models import Tag, Post # Register your models here. +admin.site.register(Tag) + +class PostAdmin(admin.ModelAdmin): + prepopulated_fields = {"slug": ("title",)} + list_display = ('slug', 'published_at') + +admin.site.register(Post, PostAdmin) \ No newline at end of file From 07373b045f41e94f6f0b9f57a1e8d68edce50408 Mon Sep 17 00:00:00 2001 From: Venkata Ratnam bhumireddy Date: Sun, 6 Aug 2023 13:28:08 +0000 Subject: [PATCH 9/9] git globla cofig settings settings for- git name, email, editor(vim) --- git_config.sh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100755 git_config.sh diff --git a/git_config.sh b/git_config.sh new file mode 100755 index 0000000000..3bcbdbe1e6 --- /dev/null +++ b/git_config.sh @@ -0,0 +1,6 @@ +git config --global user.name "Venkata Ratnam bhumireddy" +git config --global user.email "venkat4ratnam@gmail.com" +git config --global core.editor "vim" +git config --global merge.tool "vimdiff" + +