1 工程创建和配置

1.1 创建工程

1. 准备项目代码仓库:meiduo_project( 这里名称可换 )
2. 克隆项目代码仓库
进入桌面:cd Desktop
3. 克隆仓库:git clone 创建的远端地址
例如:

git clone https://gitee.com/zjsharp/meiduo_project.git

4. 进入仓库配置用户信息:
git config user.name '用户名'
git config user.email '邮箱地址'

5. 进入远程仓库,查看是否有隐藏文件.git,
进入.git查看配置信息:cat config

我们会发现在桌面就有了 meiduo_project 文件夹,该文件夹就是我们以后的工作区了。该文件夹中含有 .git 隐藏文件,这个文件夹作为本地仓库。

创建美多商城工程

1. 创建美多商城虚拟环境:

mkvirtualenv meiduo_mall -p python3

参数解读:
mkvirtualenv :创建虚拟环境的命令
meiduo_mall :创建后的虚拟环境名称(可以更换)
-p :指定创建的虚拟环境中使用的 python 解释器版本
python3 :指定在虚拟环境中使用 python3 解释器

2. 查看虚拟环境: workon
3. 进入虚拟环境: workon 虚拟环境名称
4. 创建虚拟环境后,在虚拟环境中安装 django 版本为 2.2.5:

pip install django==2.2.5

参数解读:
pip :包管理工具, 可以使用这个命令来安装项目中使用的包
install :安装命令
django==2.2.5 :安装的 django 版本为2.2.5

5. 查看安装包: pip list
6. 利用刚刚安装的 django 命令, 创建美多商城工程:

django-admin startproject meiduo_mall

参数解读:
django-admin :这是创建工程使用的命令, 这个命令需要你在虚拟环境中安装过 django 才可以调用
startproject :创建项目使用的命令
meiduo_mall :创建的项目名称
使用pycharm打开仓库说明
使用manage.py运行程序
使用git多人协同开发,忽略.idea
忽略.idea
忽略.idea之后的效果
git管理项目代码
加入前端文件,前后端分离模式:

运行前端文件:先进入 front_end_pc ,再运行前端服务器:

python -m http.server 8080
启动前端服务器
前后端分离代码结构
启动前端服务器注意事项

1.2 配置开发环境

1. 新建配置文件:准备配置文件目录
在内层 meiduo_mall 下:新建一个包,命名为
settings,作为配置文件目录

创建settings包

2. 准备开发环境配置内容
settings 文件目录下,创建两个 py 文件,分别为 dev.pyprod.py,分别作为 开发时使用的配置文件上线时使用的配置文件

将默认的配置文件 settings.py 中内容拷贝至 dev.py中, 然后把默认的配置文件删掉,即:

  • 拷贝 settings.py 到 dev.py
  • 删除 settings.py
设置settings

3. 指定开发环境配置文件

上面的内容修改完成之后,如果出现如下错误:

修改完配置文件,出现错误

还需要在 manage.py 文件中进行修改:

修改配置文件路径
文件应用说明

4. 启动当前程序
配置完成后, 我们现在可以启动当前项目:

缺少runserver参数

出现的错误如何解决呢:

配置运行参数:runserver

我们现在再次运行项目:

运行成功

1.3 配置模板文件夹路径

配置模板注意事项

dev.py 文件中修改如下选项

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
         # 添加这一行的配置信息, 把 templates的绝对路径导入到 [] 中: 
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        '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',
            ],
        },
    },
]

1.4 配置MySQL数据库

1. 新建 MySQL 数据库:meiduo_mall

create database meiduo_mall charset=utf8;

2. 新建 MySQL 用户

create user itcast identified by '123456';

3. 授权 itcast 用户访问 meiduo_mall 数据库

grant all on meiduo_mall.* to 'itcast'@'%';
新建数据库用户并授权

4. 授权结束后刷新特权

flush privileges;

5. 配置 MySQL 数据库
在配置文件 dev.py 中修改配置MySQL数据库

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 数据库引擎
        'HOST': '127.0.0.1', # 数据库主机
        'PORT': 3306, # 数据库端口
        'USER': 'root', # 数据库用户名
        'PASSWORD': '123456', # 数据库用户密码
        'NAME': 'meiduo_mall' # 数据库名字
    },
}

发现错误:虚拟环境中没有安装MySQL数据库驱动

运行测试

6. 安装mysqlclient==1.4.6: MySQL 数据库的客户端驱动

# 进入虚拟环境
pip install mysqlclient==1.4.6 -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装mysqlcilent成功
安装mysqlcilent失败
7. 解决mysqlclient安装出错的问题
  1. 更换ubuntu中默认的源为国内的源:提升软件下载速度
  2. 更新 apt-get 的源和升级
  3. 安装 libmysqlclient-dev :因为mysqlclient依赖这个软件
  4. 虚拟环境中安装 mysqlclient==1.4.6
  5. 测试:重启Django程序

7.1 更换ubuntu中默认的源为国内的源

# 第一步:备份 /etc/apt/sources.list

# 第二步:在/etc/apt/sources.list中添加以下阿里源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

# 备份
$ cp /etc/apt/sources.list /etc/apt/sources.list.bak# 添加阿里源
$ sudo vim /etc/apt/sources.list
配置阿里云的源

7.2 更新 apt-get 的源和升级,其中 upgrade 会执行很久,需要耐心等待

     $ sudo apt-get update

     $ sudo apt-get upgrade

7.3 安装 libmysqlclient-dev

     $ sudo apt-get install libmysqlclient-dev
安装 libmysqlclient-dev

7.4 虚拟环境中安装 mysqlclient==1.4.6

安装 mysqlclient 1.4.6

7.5 测试:重启Django程序

1.5 配置Redis数据库

1. 安装 django-redis 扩展包

    $ pip install django-redis

2. 配置 Redis 数据库
在 dev.py 中配置如下信息:

CACHES = {
    "default": { # 默认存储信息: 存到 0 号库
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "session": { # session 信息: 存到 1 号库
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"


default:
默认的 Redis 配置项,采用 0 号 Redis 库。

session:
状态保持的 Redis 配置项,采用 1 号 Redis 库。

SESSION_ENGINE:
修改 session 存储机制使用 Redis 保存。

SESSION_CACHE_ALIAS:
使用名为"session"的Redis配置项存储session数据。

配置完成后:运行程序,测试结果。

Redis的配置和管理

1.6 配置工程日志

在项目的同名目录下创建一个名为 logsDirectory ,并在dev.py中添加配置信息:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否禁用已经存在的日志器
    'formatters': {  # 日志信息显示的格式
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },
    },
    'filters': {  # 对日志进行过滤
        'require_debug_true': {  # django在debug模式下才输出日志
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {  # 日志处理方法
        'console': {  # 向终端中输出日志
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {  # 向文件中输出日志
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, 'logs/meiduo.log'),  # 日志文件的位置
            'maxBytes': 300 * 1024 * 1024,
            'backupCount': 10,
            'formatter': 'verbose'
        },
    },
    'loggers': {  # 日志器
        'django': {  # 定义了一个名为django的日志器
            'handlers': ['console', 'file'],  # 可以同时向终端与文件中输出日志
            'propagate': True,  # 是否继续传递日志信息
            'level': 'INFO',  # 日志器接收的最低日志级别
        },
    }
}

运行出错
日志信息

日志记录器的使用

# 1. 导入:在需要使用的位置导入
import logging

# 2. 创建日志记录器:导入后创建日志器才能使用
logger = logging.getLogger('django')

# 3. 根据不同情况,输出日志
logger.debug('调试信息')
logger.info('打印信息')
logger.error('错误信息')

1.7 Git管理日志文件

在logs下新建名为 .gitkeep 的python file

Git 没有管理 logs
Ggit 管理 logs 说明
Git 管理 logs 成功

你可能感兴趣的:(1 工程创建和配置)