From 5a585b4fc9e01adbacda1c7ae97ad61cbaab0281946794ef796bd57870980865 Mon Sep 17 00:00:00 2001 From: yuangyaa Date: Sat, 26 Jul 2025 18:36:16 +0800 Subject: [PATCH] The blog base view --- myblog/blog/admin.py | 3 +++ myblog/blog/migrations/0001_initial.py | 24 +++++++++++++++++++++++ myblog/blog/models.py | 9 +++++++++ myblog/blog/templates/blog/detail.html | 25 ++++++++++++++++++++++++ myblog/blog/templates/blog/index.html | 27 ++++++++++++++++++++++++++ myblog/blog/urls.py | 8 ++++++++ myblog/blog/views.py | 13 ++++++++++++- myblog/myblog/settings.py | 20 ++++++++++--------- myblog/myblog/urls.py | 3 ++- 9 files changed, 121 insertions(+), 11 deletions(-) create mode 100644 myblog/blog/migrations/0001_initial.py create mode 100644 myblog/blog/templates/blog/detail.html create mode 100644 myblog/blog/templates/blog/index.html create mode 100644 myblog/blog/urls.py diff --git a/myblog/blog/admin.py b/myblog/blog/admin.py index 97e651b..f55cc49 100644 --- a/myblog/blog/admin.py +++ b/myblog/blog/admin.py @@ -1,3 +1,6 @@ from django.contrib import admin +from .models import Post # Register your models here. + +admin.site.register(Post) diff --git a/myblog/blog/migrations/0001_initial.py b/myblog/blog/migrations/0001_initial.py new file mode 100644 index 0000000..89e7300 --- /dev/null +++ b/myblog/blog/migrations/0001_initial.py @@ -0,0 +1,24 @@ +# Generated by Django 5.2.4 on 2025-07-26 10:29 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Post', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=100)), + ('content', models.TextField()), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ], + ), + ] diff --git a/myblog/blog/models.py b/myblog/blog/models.py index 5d0d3b0..bbeb8c8 100644 --- a/myblog/blog/models.py +++ b/myblog/blog/models.py @@ -1,3 +1,12 @@ from django.db import models + # Create your models here. +class Post(models.Model): + title = models.CharField(max_length=100) + content = models.TextField() + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + def __str__(self): + return self.title diff --git a/myblog/blog/templates/blog/detail.html b/myblog/blog/templates/blog/detail.html new file mode 100644 index 0000000..2fa62dc --- /dev/null +++ b/myblog/blog/templates/blog/detail.html @@ -0,0 +1,25 @@ + + + + + {{ post.title }} + + + +
+ +

{{ post.title }}

+

{{ post.created_at }}

+
{{ post.content|linebreaks }}
+

← 返回首页

+ + +
+ + + + diff --git a/myblog/blog/templates/blog/index.html b/myblog/blog/templates/blog/index.html new file mode 100644 index 0000000..6fc6afd --- /dev/null +++ b/myblog/blog/templates/blog/index.html @@ -0,0 +1,27 @@ + + + + + 六桂流芳的com + + + +
+

六桂流芳的com

+ +
+ + + + + + diff --git a/myblog/blog/urls.py b/myblog/blog/urls.py new file mode 100644 index 0000000..1c41b7d --- /dev/null +++ b/myblog/blog/urls.py @@ -0,0 +1,8 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.index, name='index'), + path('post//', views.detail, name='detail'), +] diff --git a/myblog/blog/views.py b/myblog/blog/views.py index 244b489..f4f942a 100644 --- a/myblog/blog/views.py +++ b/myblog/blog/views.py @@ -1,3 +1,14 @@ -from django.shortcuts import render +from django.shortcuts import render, get_object_or_404 +from .models import Post + # Create your views here. + +def index(request): + posts = Post.objects.order_by('-created_at') + return render(request, 'blog/index.html', {'posts': posts}) + + +def detail(request, post_id): + post = get_object_or_404(Post, pk=post_id) + return render(request, 'blog/detail.html', {'post': post}) diff --git a/myblog/myblog/settings.py b/myblog/myblog/settings.py index 4fd067f..1ca35d7 100644 --- a/myblog/myblog/settings.py +++ b/myblog/myblog/settings.py @@ -15,7 +15,6 @@ from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent - # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/5.2/howto/deployment/checklist/ @@ -27,7 +26,6 @@ DEBUG = True ALLOWED_HOSTS = [] - # Application definition INSTALLED_APPS = [ @@ -37,6 +35,8 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + + 'blog' ] MIDDLEWARE = [ @@ -68,7 +68,6 @@ TEMPLATES = [ WSGI_APPLICATION = 'myblog.wsgi.application' - # Database # https://docs.djangoproject.com/en/5.2/ref/settings/#databases @@ -79,7 +78,6 @@ DATABASES = { } } - # Password validation # https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators @@ -98,19 +96,16 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] - # Internationalization # https://docs.djangoproject.com/en/5.2/topics/i18n/ -LANGUAGE_CODE = 'en-us' - -TIME_ZONE = 'UTC' +LANGUAGE_CODE = 'zh-Hans' +TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_TZ = True - # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/5.2/howto/static-files/ @@ -120,3 +115,10 @@ STATIC_URL = 'static/' # https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +CSRF_TRUSTED_ORIGINS = [ + "https://www.yuangyaa.com", + "http://www.yuangyaa.com", + "http://yuangyaa.com", + "https://yuangyaa.com", +] diff --git a/myblog/myblog/urls.py b/myblog/myblog/urls.py index 624673c..f18aa14 100644 --- a/myblog/myblog/urls.py +++ b/myblog/myblog/urls.py @@ -15,8 +15,9 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), + path('', include('blog.urls')), ]