Skip to content

Latest commit

 

History

History
88 lines (80 loc) · 4.69 KB

01-基本环境搭建.md

File metadata and controls

88 lines (80 loc) · 4.69 KB

1. 创建虚拟环境

  • 安装 virtualenv pip install virtualenv
  • 使用 virtualenv 创建虚拟环境 virtualenv new_muxue_course_online_env
  • 创建完毕后,进入 Scripts 文件夹,cd Scripts
  • 激活环境,直接在命令行输入 activate.bat

2. 安装依赖

  • 使用豆瓣的 pip 源,安装速度会更快 pip install <packageName> -i https://pypi.douban.com/simple/
  • 安装 Django,pip install django -i https://pypi.douban.com/simple/
  • Django 自带的除了 Django 自身,还有两个库,一个是 pytz,另一个是 sqlparse
  • pytz,处理时区问题
  • sqlparse,解析 SQL 语言的库

3. 创建项目

  • 创建项目,django-admin startproject new_muxue_course_online
  • 启动项目,django-admin run manage.py

4. 数据库

  • 在 centos 中,需要先安装 yum install mysql-devel -y,不然安装 mysqlclient 时会报错
  • 安装 mysqlclient,pip install mysqlclient==1.3.14 -i https://pypi.douban.com/simple/
  • 如果 mysqlclient 的版本过高或者过低,可能会报错
  • 连接数据库,需要修改 settings.py 里的 DATABASES
  • 这里的 NAME 需要先在数据库里创建对应的数据库,不然会报错的
  • 至于这里的账号密码信息什么的,可以放在专门的配置文件里,这个后边再说吧
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'muxue_course',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1'
    }
}
  • 重启服务,可以正常连接到数据库
  • Django 默认是 8000 端口,所以我们可以直接在浏览器访问 localhost:8000,就可以看到 Django 服务已经成功启动
  • Django 默认生成的 db.sqlite3 是 Django 默认使用的数据库,现在我们使用了 mysql,就可以把这个文件删除
  • BASE_DIR 为该项目的根目录
  • DEBUG 是一个布尔值,控制 DEBUG 模式的开启或关闭,当设置为 True 时,Django 将会把所有的日志和错误信息都输出到控制台,生产环境必须设置为 False ,否则会导致信息泄露
  • ALLOWED_HOSTS 在本地开发的时候,无需设置。在生产环境中,DEBUG 设置为 FALSE,必须将 主机名/IP 地址填入该列表,让 Django 为该 主机/IP 提供服务
  • INSTALLED_APPS列出了每一个项目当前激活的应用,默认包含以下应用
    • django.contrib.admin,管理后台应用
    • django.contrib.auth,用户身份认证
    • django.contrib.contenttypes,追踪 ORM 模型与应用的对应关系
    • django.contrib.sessions,session 应用
    • django.contrib.messages,消息应用
    • django.contrib.staticfiles,管理站点静态资源
  • MIDDLEWARE_CLASSES 是中间件列表
    • django.middleware.security.SecurityMiddleware,内置的安全机制,保护用户和网站的通信安全
    • django.contrib.sessions.middleware.SessionMiddleware,会话Session功能
    • django.middleware.common.CommonMiddleware,处理请求信息,规范化请求内容
    • django.middleware.csrf.CsrfViewMiddleware,开启CSRF防护功能
    • django.contrib.auth.middleware.AuthenticationMiddleware,django.contrib.auth.middleware.SessionAuthenticationMiddleware,内置的用户认证系统
    • django.contrib.messages.middleware.MessageMiddleware,内置的信息提示功能
    • django.middleware.clickjacking.XFrameOptionsMiddleware,防止恶意程序点击劫持
  • ROOT_URLCONF 指定项目的根 URL patterns 配置文件
  • TEMPLATES 指定渲染的模板信息
TEMPLATES = [
    {
        # 定义模板引擎,内置的有Django Template和jinja2
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # 模板所在的路径
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        # 是否会在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',
            ],
        },
    },
]
  • DATABASES 是一个字典,包含不同名称的数据库及其具体位置,必须始终有一个默认的 default 数据库,默认使用 SQLlit3 数据库
  • LANGUAGE_CODE 站点默认的语言代码
  • USE_TZ 是否启用时区支持,Django 可以根据时区自动切换时间显示。