1、安装 Django (安装到全局的,感觉类似安装到全局的 vue-cli 这种)
pip install django
ipython
import django
django.VERSION
# Out[2]: (5, 0, 4, 'final', 0)
# 版本号 5.0.4
# final 代表 是一个稳定的正式发布版本
# 退出 ipython 模式
exit()
2、创建 Django 项目,项目名:DemoDjango
django-admin startproject [项目名]
例如
django-admin startproject DemoDjango
安装 ipython调试器
pip install ipython
1、进入调试
ipython
2、引入时间对象
import datetime
3、datetime. + tab按键 会出来选项
3、创建应用
创建完项目之后,还要创建具体的应用
在我理解里,项目像是一个服务器,应用是具体的应用
- DemoDjango
- DemoDjango [ 文件夹 ]
- manage.py
在 DemoDjango 这个目录下,运行如下命令
# python [目录下的manage.py文件] startapp [应用名]
python manage.py startapp demoapp
创建完应用后的结构如下
项目 & 应用 目录解析
DemoDjango [ 项目 ]
|- demoapp [应用文件夹]
|- mgrations 用于数据库迁移工作
|- __init__.py 初始化文件
|- admin.py 当前应用后台的应用管理系统
|- apps.py 应用的配置信息,一般不动
|- models.py 映射关于数据库的数据和初始化 ⭐
|- tests.py自动化测试模块
|- views.py 逻辑处理模块 ⭐
|- DemoDjango [ 生成项目的时候生成的文件夹,和项目同名 ]
|- __pycach__是python3的一个文件,不用关注
|- __init__.py 初始化文件一般不用管
|- urls.py 项目的url设置,可以理解为网站的地址信息(我感觉像是路由)
|- settings.py 配置文件,整个项目的配置在这里
|- wsgi.py 是 Django项目在服务器上部署和上线用的
|- manage.py 文件,是个命令行工具,可以用多种方式和项目交互,用 python manage.py查看命令
项目配置文件说明(注释)
DemoDjango/DemoDjango/settings.py
"""
Django项目的设置,用于DemoDjango项目。
由'django-admin startproject'命令生成,使用Django 5.0.4版本。
有关此文件的更多信息,请见
https://docs.djangoproject.com/en/5.0/topics/settings/
有关设置及其值的完整列表,请见
https://docs.djangoproject.com/en/5.0/ref/settings/
"""
from pathlib import Path
# 在项目中构建路径的方式,如:BASE_DIR / 'subdir'。
BASE_DIR = Path(__file__).resolve().parent.parent
# 快速开始开发设置 - 不适用于生产环境
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
# 安全警告:保持生产中使用的密钥是秘密的!
SECRET_KEY = 'django-insecure-3op8%j^(6n)(@x++6$=h^xk^n$+v$%xi=die=)h9s)1!e%g5l*'
# 安全警告:不要在生产中启用调试模式!
DEBUG = True
# 允许访问的空间 DEBUG = False 时必填,不然无法访问
# 如果允许所有程序都能访问,可以填 ['*']
ALLOWED_HOSTS = []
# 应用程序定义
# 定义应用的
# 比如刚才新建的应用 'demoapp' 要在下边定义上
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'demoapp'
]
# 中间件
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 = 'DemoDjango.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'DemoDjango.wsgi.application'
# 数据库
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# 密码验证
# https://docs.djangoproject.com/en/5.0/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',
},
]
# 国际化
# https://docs.djangoproject.com/en/5.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# 静态文件(CSS,JavaScript,图片)
# https://docs.djangoproject.com/en/5.0/howto/static-files/
STATIC_URL = 'static/'
# 默认的主键字段类型
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'