From db412ed30ffb5b54557b89ba9f5f2f6a027a3efe Mon Sep 17 00:00:00 2001 From: unknown <18888073323@139.com> Date: Wed, 8 Oct 2025 23:20:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BADjango=E5=8D=9A?= =?UTF-8?q?=E5=AE=A2=E9=A1=B9=E7=9B=AE=E5=9F=BA=E7=A1=80=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 初始化Django项目配置 - 创建博客应用(blog) - 建立模板和静态文件目录 - 完成数据库迁移 --- blog/__init__.py | 0 blog/admin.py | 3 + blog/apps.py | 6 + blog/migrations/__init__.py | 0 blog/models.py | 3 + blog/tests.py | 3 + blog/views.py | 3 + db.sqlite3 | Bin 0 -> 131072 bytes manage.py | 22 ++++ mysite/__init__.py | 0 mysite/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 153 bytes mysite/__pycache__/settings.cpython-311.pyc | Bin 0 -> 2536 bytes mysite/__pycache__/urls.cpython-311.pyc | Bin 0 -> 1035 bytes mysite/__pycache__/wsgi.cpython-311.pyc | Bin 0 -> 673 bytes mysite/asgi.py | 16 +++ mysite/settings.py | 122 ++++++++++++++++++++ mysite/urls.py | 22 ++++ mysite/wsgi.py | 16 +++ 18 files changed, 216 insertions(+) create mode 100644 blog/__init__.py create mode 100644 blog/admin.py create mode 100644 blog/apps.py create mode 100644 blog/migrations/__init__.py create mode 100644 blog/models.py create mode 100644 blog/tests.py create mode 100644 blog/views.py create mode 100644 db.sqlite3 create mode 100644 manage.py create mode 100644 mysite/__init__.py create mode 100644 mysite/__pycache__/__init__.cpython-311.pyc create mode 100644 mysite/__pycache__/settings.cpython-311.pyc create mode 100644 mysite/__pycache__/urls.cpython-311.pyc create mode 100644 mysite/__pycache__/wsgi.cpython-311.pyc create mode 100644 mysite/asgi.py create mode 100644 mysite/settings.py create mode 100644 mysite/urls.py create mode 100644 mysite/wsgi.py diff --git a/blog/__init__.py b/blog/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/blog/admin.py b/blog/admin.py new file mode 100644 index 0000000..8c38f3f --- /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 0000000..94788a5 --- /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/migrations/__init__.py b/blog/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/blog/models.py b/blog/models.py new file mode 100644 index 0000000..71a8362 --- /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 0000000..7ce503c --- /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 0000000..91ea44a --- /dev/null +++ b/blog/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..0eb48289f3b307e5ba6806ef7dd310aa586a4bff GIT binary patch literal 131072 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 aAG{v($6}F~`I05!=uHk>7b3A>DDc18*14|$ literal 0 HcmV?d00001 diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..a7da667 --- /dev/null +++ b/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/mysite/__init__.py b/mysite/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mysite/__pycache__/__init__.cpython-311.pyc b/mysite/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..001562686a18b1a2816b1c7402a06c8f6978c1c2 GIT binary patch literal 153 zcmZ3^%ge<81cvp`GC=fW5CH>>P{wCAAY(d13PUi1CZpdB^G=4F<|$LkeT{^GF7%}*)KNwq6t1!@Kv VU(63AJ}@&fGJary5k<^EF#vufA{77t literal 0 HcmV?d00001 diff --git a/mysite/__pycache__/settings.cpython-311.pyc b/mysite/__pycache__/settings.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ae1799bf00e68f235d5d05d0628b069935a2d3b2 GIT binary patch literal 2536 zcmb7G&2JM&6rc6?cN`N)fKnMj0Viaw5Wa+fvavV8!m-n=L)ulO)y6Y+HtdJlStn#K z^|6(D=&e0)s5rE$_-8_k)M!tUDpl=mC2pMh)*p%GAeFAhZ)e`e@4b2R-mHH~CSwSm zxv&4)`aOZrpWb5dg!+?rf5YSlgpr6agMBKa`9vRse2Dmn|7QlF*YN8-KLrM};rGw5 zczwj!4i2WrGcknyVi*U+NE3=mOhIQ}xwWW*#+ zh$)=JDH6hCb{rv`e(6&faSV^+3}}txQ(ZdIrKc6984%O>j5v-b#SHj61-}VAC7#A- z#WVPvfO6;M8Q4y&xGn2VBTI>8DSDG;8-|(H_NZc!Y|AvZN!?;&u_dAtQ?>}sZti8T z;;zZ8j5S5iQcE_izUI|zn*vC-k9mu|!QKJuMGw+2NmkJTU6U=v(6cbCEd~53D!C5s zNo>oqTJ&B%kBvHIdp-sc)D109^gICOEu*E>X?_rIz6Wn@k!+)_s##T`R@P`7??=`# zI3kLf-I3Kcq5sF1Ng6|r{_&18$2fr%+1j!f`dLtPO6qNs%$mE`th+lJ)gNrlKbX08 z^U-CU-mqRwYv#=5`Yr33e(iy@qhFcc{_N6L12=BZ@78i5d!h%!)(zbJ~KY|r+knu4)Pc4d>W z-F+(79xHeohRO1g%)U7a)_2bi*$X}1kX7!a6F6zj(Ah%w^&hI#Y_J6&PZhE|q!?og=5bQ!a}_SAc{>Ko{ygV%LVRVZ zRNyBNc#N;fm1=|)86ircOuf(7BGz`;z z__0XKimqsFtxWW$wRLR&`N!J#N`Ivv<1xUaj|Hf-HDW6DlL$eg&$g-KU#k`DFx=bF z0(tvF9~LsH8JMV)T~M0PBF3UZR9wkTI$=qID_N49a0@OzRoOKCkXk1qN#14Q@l8Sv zb%!{i7TgoMvG;F+@<3fb!!WKd#spmCktxKS-A7Zy!wsQC z`kR~IN4|ad-NQfP7k`Uid=tO))*I7r<8z&en?k8orV|6jXtEPLOlLYtHx|zLTr?n^ zl$(j9fH5GTJ%Q2}Ite#|CV1u`ojI78I!t6;6u6WcBL2`s%#Fr_As2bXpG^8XQTJ0c zF}sh_;5e8%$gl_LsUPpZNndq?{xm3h#2@S`o?yYUkoo+dyCV_ tPkgX{_X--H>Ld>nMGOD{ literal 0 HcmV?d00001 diff --git a/mysite/__pycache__/urls.cpython-311.pyc b/mysite/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..005f5f0522590f3397e12dd496844832cee91511 GIT binary patch literal 1035 zcmb7D&ui2`6rN zJ$fkkA1LBKQ^AAeDhS>ddh5wI`2njS=*tgYhBx2)zHeSWuC18}V(ZP1*_9ST-_=JG zMxC5LhU7gWXo!eL^jJ&up{}XC6}J*&XlO`B)F1}c=j~?mywhYKbc8;`Q^iypu8{Uq zWOstsuxJjRJj5YOC($(Lfs9y+Cye9dSVWTIjI%inrDK}UW)vUgJkA0sDNn@_jw2y4 zXSt*T1Bk$q;pY*3Asl?55E!R8N&zgXV6&J8f?`3bXJUw%l$r2cm#|PcWFDkb*0c** z;?mUJakgE_vM3a;Dt4j0aLxNKg9NaIXCCBfSTZi#mY`b>zDo!WQXC~2DhlUI!wbjCs8^D6Uu%{nmXXdpTp7^3{>EFR4wh< zcv4&GRd!X!;V8o!l67srH07V!j$<};!N8`Ir4~wD%eKv*Y9wu~Xa^*TQb-Kt_^VF& z={~YoixuC8`SAT>y`}_8B#*`%{uNYomw0mZw-kmN+rm)9i|*24enRJ}*F|s78w~{I zVzjjjG1@QZ?jDdDRUuAw@Q4At7A;NF7W#%}ERcF(q+LHl sc=`T@uATjUFFL4w>16-y)pt9m-szn$#^zUJbJ5Z_^pmc-_+>!;1zwyv8~^|S literal 0 HcmV?d00001 diff --git a/mysite/__pycache__/wsgi.cpython-311.pyc b/mysite/__pycache__/wsgi.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dbc2f35df755c482650a0c9141f5f17529622924 GIT binary patch literal 673 zcmY*X&ubGw6n?XtHoCP@#P&Rt9t`NNDF{+TXlxA;O%G{NLSVCIUN#$Mcb1)LYI?B; z{{`{tsUrPnQYi|13J8L?KyN)cn>7&M{GRvT_kC}eudAyTXsdkq-Ty=Yer1Qb75;6m z`g-#j7_@*9W^mFXdNsKbnk|z6lEFL@zAVj?7gttbOJ@eaxgNO@FaXUneK?A zO(-v){IK3MYjxTcQ7`amPb4%P$v`2E6EVQ9vMsBwD87${L`hX2X&&!!?!DtkJxM(p z3U^OM#CTxQEKT#hCT0yt8`_7@EcrZg0AmB-)Q1SD#5%p1wFy+l|Mv+PAFZFT m_8r#7>-PB3&IMF2p*n`@q_iy#>6iG literal 0 HcmV?d00001 diff --git a/mysite/asgi.py b/mysite/asgi.py new file mode 100644 index 0000000..4e0d84c --- /dev/null +++ b/mysite/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for mysite project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + +application = get_asgi_application() diff --git a/mysite/settings.py b/mysite/settings.py new file mode 100644 index 0000000..83cb73d --- /dev/null +++ b/mysite/settings.py @@ -0,0 +1,122 @@ +""" +Django settings for mysite project. + +Generated by 'django-admin startproject' using Django 5.2.7. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.2/ref/settings/ +""" + +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/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-rw(t8vmsn=h3=+(4@$ns2tx*mr+$c5tkn(=_vn&*j%#hfdf63w' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'mysite.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'mysite.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/5.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/5.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/5.2/howto/static-files/ + +STATIC_URL = 'static/' + +# Default primary key field type +# https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/mysite/urls.py b/mysite/urls.py new file mode 100644 index 0000000..3d1f1da --- /dev/null +++ b/mysite/urls.py @@ -0,0 +1,22 @@ +""" +URL configuration for mysite project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/5.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path + +urlpatterns = [ + path('admin/', admin.site.urls), +] diff --git a/mysite/wsgi.py b/mysite/wsgi.py new file mode 100644 index 0000000..35e1b4d --- /dev/null +++ b/mysite/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for mysite project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + +application = get_wsgi_application()