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
+
+ {% for post in posts %}
+ -
+ {{ post.title }} -
+ 发布时间:{{ post.published_at|date:"Y年n月j日 H:i" }}
+
+ {% endfor %}
+
+
+
+
+
+
+
+
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')),
]