Django 创建 [1]

91 阅读2分钟

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'