django(三):配置文件settings.py、初始化数据库

基础

配置文件settings.py

阶段类型修改的变量示例
开发阶段调试模式DEBUGDEBUG = True
域名访问ALLOWED_HOSTSALLOWED_HOSTS = []
配置appINSTALLED_APPS插入app
配置中间件MIDDLEWARE插入LocaleMiddleware
配置模板TEMPLATES更改DIRS
配置数据库DATABASES
配置国际化与本地化LANGUAGE_CODE 、TIME_ZONE修改语言为中文,时区为上海
配置静态资源STATICFILES_DIRSSTATIC_URL 不更改不删除
配置媒体资源MEDIA_URL、STATICFILES_DIRS
上线阶段调试模式DEBUGDEBUG = False
域名访问ALLOWED_HOSTSALLOWED_HOSTS = ['*']
配置数据库DATABASES更改HOST,设置为公网ip
配置静态资源STATIC_ROOTSTATIC_URL 和 STATICFILES_DIRS 不用删除

调试模式DEBUG

DEBUG参数真正决定django处于什么阶段。

# 开发阶段
DEBUG = True
# 上线阶段
DEBUG = False

配置模板

templates位置存在多种情形:

  • 整个项目只有一个templates
# 根目录下的templates
'DIRS': [BASE_DIR / 'templates']
# 项目下的templates
'DIRS': [BASE_DIR / 'MyDjango/templates']
  • 各个app下的templates
 # app下的模板文件的名字默认为templates
 'DIRS': []
 # app下的模板文件的名字更改
 'DIRS': [BASE_DIR / 'myapp/temps', BASE_DIR / 'myapp2/temps']

无论哪种,'APP_DIRS’都要设为True

静态资源

有三个变量要配置:

  • STATIC_URL
    STATIC_URL = '/static/',Django自动在app的static文件夹(自己创建)找静态资源,static名字不可更改
  • STATICFILES_DIRS
    DEBUG = True开发阶段时
    STATICFILES_DIRS = [BASE_DIR / 'develop_static'] ,Django在任意位置的static文件夹(任意取名)找静态资源。
  • STATIC_ROOT
    DEBUG = False上线阶段时,Django不再提供静态文件代理服务。 必须让Web服务器(如Nginx)管理静态资源。
    开发者需要执行manage.py命令collectstatic:自动收集所有静态资源,并存入自动创建 的STATIC_ROOT的文件夹中。

媒体资源

有两个变量要配置:

  • MEDIA_URL
    本质类似 STATIC_URL,Django自动在app的media文件夹(自己创建)找媒体资源。
  • MEDIA_ROOT
    本质类似STATICFILES_DIRS 和 STATIC_ROOT,不区分开发、上线阶段,Django在任意位置的media文件夹(任意取名)找媒体资源。

初始化数据库

mysql-8版本连接django问题

因为mysql8版本加密方式改变,采用CHA2加密。不做处理,直接连接会报错。

  1. 方法1
    安装python包:pip install cryptography
  2. 方法2(推荐)
    更改mysql的加密方式。在mysql中输入:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;。用户名为root,密码为123456。

mysql中创建数据库

数据库名:mydb

# mysql中
CREATE DATABASE IF NOT EXISTS mydb DEFAULT CHARACTER SET utf8;

数据迁移

初始时,创建内置功能(如Auth)的数据表。

python manage.py makemigrations		# 生成迁移文件
python manage.py migrate	# 生成数据表

MyDjango 实例

MyDjango/ settings.py

  • 整个项目只有一个templates:根目录下的templates
  • 开发阶段,整个项目只有一个static:根目录下的develop_static
  • 整个项目只有一个media:根目录下的media

MyDjango/ init.py

__init__.py

  • 用 pymysql 连接数据库

初始化数据库

详情看此篇文章的基础部分的初始化数据库

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值