Django快速入门学习-Django 项目结构(settings.py)

857 阅读4分钟

启动服务[测试开发阶段]

  1. 终端cd进入到项目文件夹,例如 cd E:\DjangoProject\day01
  2. 进入到项目文件夹后,执行 python manage.py runserver 启动Django服务 注:[该启动方式下,Django 在前台启动服务,默认监听8000端口]

11w.png

  1. 浏览器访问http://127.0.0.1:8000/可以看到Django的启动页面 注:[如果想更换端口,则可以用 python manage.py runserver 端口号]

image.png

成功启动后,我们可以看到在该目录下会生成 Django 自带的数据库文件 db.sqlite3,这是 Django 默认自带的轻量级数据库。

关闭服务

  • 在runserver启动终端下执行Ctrl + Break,我们在刚才的终端上也可以看到怎么样去关闭服务

启动常见问题

  • 启动时报错

Error:That port is already in use 原因:端口被占用,说明了当前Django启动时,默认监听的8000端口已被其他进程占用 解决方案:关闭占用端口服务或者换端口

项目结构- settings.py文件介绍

  • settings.py 包含了Django 项目启动的所有配置项
  • 配置项分为公有配置和自定义配置
  • 公有配置 - Django官方提供的基础配置:docs.djangoproject.com/en/2.2/ref/… 我们使用pycharm打开我们的项目进入到项目文件中的settings.py,我们依次介绍

w.png

1. BASE_DIR

它用于绑定当前项目 day01 所在的绝对路径(项目路径)

BASE_DIR = Path(__file__).resolve().parent.parent
2. SECRET_KEY

用于加密也就是密钥

SECRET_KEY = 'django-insecure-u=&#*byi*qu9cvg!q%#x5iv--7e2gm6bzqp3a6(tf(7=h#vgq%'
3. DEBUG 配置 Django 项目的启用模式
  • DEBUG = True 开发运行模式(python manage.py runserver)下,属于调试模式,在项目的运行过程中会暴露一些错误信息以方便调试。
  • DEBUG = False 用于线上环境,表示不启用调试模式。运行时不会访问static目录,也就是不能加载静态资源。
4. ALLOWED_HOSTS 域名访问权限
  • 当 DEBUG = False 时,必须填写:
  • [],空列表,表示只有1217.0.0.1,localhost能访问本项目;
  • ['*'],表示任何网络地址都能访问到当前项目;
  • ['192.168.1.3', '192.168.3.3'] 表示只有当前两个主机能访问当前项目。 注:如果是在局域网,让其它主机也能访问此站点,应使用 ALLOWED_HOSTS=['*'] 的方式。
5. INSTALLED_APPS app列表

我们可以根据自己的项目需求对其进行增加或删除,Django在启动时,是按list的顺序进行顺序加载的,所以,APP放的顺序不能乱。

INSTALLED_APPS = [
    #  内置的后台管理系统
    'django.contrib.admin',
    #  内置的用户认证系统
    'django.contrib.auth',
    # 所有model元数据
    'django.contrib.contenttypes',
    # 会话,表示当前访问网站的用户身份
    'django.contrib.sessions',
    # 消息提示
    'django.contrib.messages',
    # 静态资源路径
    'django.contrib.staticfiles',
    # 周期性任务
    'django_celery_beat',
    # 注册自己的APP
    'userapp',
]
6. MIDDLEWARE 中间件

这里就不细说了,想要了解的可以看这个网址:www.jb51.net/article/136…

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',
]
7. ROOT_URLCONF 当前项目的根 URL,是 Django 路由系统的入口。
ROOT_URLCONF = 'day01.urls'
8. TEMPLATES 模板引擎
TEMPLATES = [
    {
        # 定义模板引擎
        'BACKEND''django.template.backends.django.DjangoTemplates',
        # 设置模板路径
        'DIRS': [],
        # 是否在App里查找模板文件
        'APP_DIRS'True,
        # 用于RequestContext上下文的调用函数
        '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',
            ],
        },
    },
]
9. WSGI_APPLICATION

项目部署时,Django 的内置服务器将使用的 WSGI 应用程序对象的完整 Python 路径。

WSGI_APPLICATION = 'day01.wsgi.application'
10. DATABASES 数据库配置

这里默认配置的是 Django 自带的 sqllite3 数据库。Django 支持多种数据库,在这个字典变量中更改数据库配置。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

我们也可以切换到mysql数据库

DATABASES = {
    'default': {
        'ENGINE''django.db.backends.mysql',
        'NAME''root',
        'USER''root',
        'PASSWORD''123456',
        'HOST''127.0.0.1',
        'PORT''3306',
    }
11. AUTH_PASSWORD_VALIDATORS 密码验证器

Django 通过这些内置组件来避免用户设置的密码等级不足的问题。

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',
    },
]
12. 时区和语言设置
#语言配置项
LANGUAGE_CODE = 'en-us'    //是英文:'en-us'或者中文:'zh-Hans'#当前服务端时区的配置项
TIME_ZONE = 'UTC          //是世界时区 'UTC' 或中国时区 'Asia/Shanghai'。
#USE_118N 和 USE_L10N 这两个变量值表示是否需要开启国际化和本地化功能。默认开启的状态。
USE_I18N = True          //I18N 指的是国际化英文缩写
USE_L10N = True         //L10N 指的是本地化英文缩写。
#对时区的处理方式
USE_TZ = True          //当设置为 True 的时候,存储到数据库的时间是世界时间  'UTC'。
13. STATIC_URL 静态资源目录

静态资源包括 CSS、JS、Images。比如我们要在项目中添加一些图片,通常这些静态图片被存放在新建的 static 目录下,这样就实现了通过 STATIC_URL= '/static/' 路径对静态资源的访问。

STATIC_URL= '/static/'