启动服务[测试开发阶段]
- 终端cd进入到项目文件夹,例如
cd E:\DjangoProject\day01
- 进入到项目文件夹后,执行
python manage.py runserver
启动Django服务 注:[该启动方式下,Django 在前台启动服务,默认监听8000端口]
- 浏览器访问
http://127.0.0.1:8000/
可以看到Django的启动页面 注:[如果想更换端口,则可以用 python manage.py runserver 端口号]
成功启动后,我们可以看到在该目录下会生成 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,我们依次介绍
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/'