django项目环境搭设

django项目环境搭设与码云版本管理

一、在码云平台创建项目(使用前先注册个人账户)

1、创建仓库

1.1 登录码云后,通过网站右上角的「+」号,选择「新建仓库」,进入新建仓库页面

在这里插入图片描述

1.2、填写仓库信息

在这里插入图片描述

1.3 点击「创建」,即可在码云上创建你的第一个仓库。

在这里插入图片描述

2、生成ssh公钥

查看远程仓库使用准备工作

3.添加远程仓库(二选一,推荐使用克隆)

获取ssh链接

在这里插入图片描述

3.1克隆项目到本地
克隆项目到虚拟机或者物理机都可以。

推荐使用

git clone [email protected]:用户个性地址
3.2、添加远程仓库

如果是先在本地建立了项目, 再在码云上创建远程仓库,那么操作如下。
要保证远程仓库是空仓库

3.2.1、首先cd到django项目根目录,然后创建git本地仓库
cd ~/project/myproject
git init
3.2.2、 然后添加远程仓库
git remote add origin  [email protected]:用户个性地址

二、django环境搭配

1、创建虚拟环境

mkvirtualenv -p /usr/bin/python3.6 mytest

在这里插入图片描述

2、创建django项目

2.1、安装django

选择安装django2.1.x最新的一个版本2.1.10

pip install django==2.1.10

在这里插入图片描述

2.2、创建django项目
cd ~/project/mytest		# cd到你想放django项目路径的地方
django-admin startproject myproject

3.创建pycharm项目

通过pycharm的远程项目,连接虚拟机,开发。

3.1.选择项目目录

选择你要存放项目文件的目录,注意django项目和pycharm项目的根目录一定要保持一致,不要用一个pycharm的项目,管理多个django项目。
在这里插入图片描述

3.2.配置远程解释器

配置刚才创建的虚拟解释器
在这里插入图片描述
配置远程解释器
在配置解释器以前,我们先来配置一下虚拟机NAT端口转发设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

再来配置ssh远程连接
在这里插入图片描述
选择刚才创建的虚拟环境解释器
在这里插入图片描述

3.3配置远程项目路径

在这里插入图片描述
创建远程项目路径(也可以先在虚拟机里创建项目保存路径,这里使用pycharm创建文件)

在这里插入图片描述
在新的窗口打开
在这里插入图片描述
在这里插入图片描述
然后在虚拟机中创建django项目
在这里插入图片描述

3.4.设置同步配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择虚拟机项目保存路径
在这里插入图片描述
在这里插入图片描述
选择在写代码时总是上传
在这里插入图片描述
在这里插入图片描述

3.5.下载代码

将虚拟机文件下载下来
在这里插入图片描述
在这里插入图片描述

3.6、pycharm配置Django项目

代码下载后,就需要将在pycharm中将项目配置成django项目,以便使用pycharm的各种便捷提示功能。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择项目的本地路径,设置和管理文件路径
在这里插入图片描述
在这里插入图片描述

看到下图显示,就表明可以正常启动了
在这里插入图片描述
做好虚拟机端口映射,在浏览器里输入http://127.0.0.1:8000你应该看到下面的画面
成功运行
在这里插入图片描述

三、django项目设置

1、配置模板文件

进入设置文件
在这里插入图片描述
新建一个名为templates的文件
在这里插入图片描述
并在设置中配置模板文件路径
在这里插入图片描述

2.配置mysql数据库

2.1、创建数据库

进入mysql数据库,创建一个数据库(必须手动创建数据库)

mysql> create database myproject charset=utf8mb4;
Query OK, 1 row affected (0.00 sec)
2.2、创建用户
mysql> greate user 'my_user'@'%' identified by 'pythonvip';
Query OK, 1 row affected (0.00 sec)
2.3、授权
mysql> grant all privileges on myproject.* to 'my_user'@'%';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
# 授权创建一起写
grant all privileges on myproject.* to 'my_user'@'%' indentified by 'pythonvip'

如果想查看用户的权限
先进入数据库

use mysql;进入mysql数据库
select Host,User from user;  查看user表中的用户和权限

在这里插入图片描述

2.4、配置settings

方法一:直接在settings.py文件中添加数据库配置信息

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

方法二:将数据库配置信息存到一个文件,在settings文件中将其引入。(推荐)
新建数据库配置文件db.cnf(名字随意,但是后缀必须是cnf)
db.cnf文件内容:

[client]
database = myproject
user = my_user
password = pythonvip
host = 127.0.0.1
port = 3306
default-character-set = utf8

在settings.py文件中引入db.cnf

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS':{
            'read_default_file': 'utils/db/db.cnf'
        }
    }
}

官方文档:https://docs.djangoproject.com/en/2.1/ref/databases/#connecting-to-the-database

3.安装mysql数据库的python驱动

⚠️mysql数据库配置完成后,运行django服务会报如下错误,官方推荐安装mysqlclient1.3.7以上版本,也可以安装pymysql,并且需要在settings.py文件所在目录包中的__init__.py中导入pymysql。
在这里插入图片描述

3.1、安装mysqlclient(推荐使用)
# 首先更新ubuntu
sudo apt-get update 
# 然后按照依赖库
sudo apt-get install default-libmysqlclient-dev
# 再切换到虚拟环境中
workon mytest
# 最后安装mysqlclient
pip install mysqlclient -i https://pypi.doubanio.com/simple

注意:
mysqlclient 版本问题

  • 解决办法:
    1. 使用低版本,但要大于1.3.7
    2. 下载缺失的文件
wget http://files.directadmin.com/services/debian_7.0_64/libmysqlclient.so.18
	下载后复制到 /usr/lib/x86_64-linux-gnu/ 目录下
3.2、安装pymysql(使用了mysqlclient就不用安装了)
# 安装pymysql
pip install pymysql -i https://pypi.doubanio.com/simple

settings.py文件所在目录下的__init__.py导入
在这里插入图片描述
推荐使用第一种方式,mysqlclient更快更安全,官方推荐。

4.配置redis缓存

用于存放用户session信息,以及需要缓存的各种信息。

# 在虚拟机中安装django-redis
pip install django-redis	
# settings.py文件中指定redis配置

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    'session': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    },
}

# session存储缓存设置
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'session'

文档地址:https://django-redis-chs.readthedocs.io/zh_CN/latest/

django文档:https://docs.djangoproject.com/en/2.2/topics/http/sessions/#using-cached-sessions

5.配置日志器

用于记录系统运行过程中的各种日志信息。

在项目根目录中创建一个logs文件夹,用于存放日志文件(注意一定要创建)

# 日志
LOGGING = {
    # 版本
    'version': 1,
    # 是否禁用已存在的日志器
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '{levelname} {asctime} {module} {lineno:d} {message}',
            'style': '{',
        },
        'simple': {
            'format': '{levelname} {module} {lineno:d} {message}',
            'style': '{',
        },
    },
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {
            'level': 'INFO',
            # 这个handler可以记录一组日志文件
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, 'logs/tz_django.log'),
            # 单个日志文件最大字节数
            'maxBytes': 300*1024*1024,
            # 日志文件个数
            'backupCount': 10,
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console', 'file'],
            'level': 'INFO',  # 日志器接收的最低级别
            'propagate': True,
        },
    },
}

使用方法

# 使用方法
# import the logging library
import logging

# Get an instance of a logger
# 此处的django为,settings.py文件中,LOGGING配置下的loggers中定义的日志器名称
logger = logging.getLogger('django')	

def my_view(request, arg1, arg):
    ...
    if ***:
        # Log an error message
        logger.error('Something went wrong!')

官方文档:https://docs.djangoproject.com/en/2.2/topics/logging/#module-django.utils.log

6.时区配置

# 修改语言
LANGUAGE_CODE = 'zh-hans'
# 修改时区
TIME_ZONE = 'Asia/Shanghai'
#语言
USE_I18N = True
#数据和时间格式
USE_L10N = True
# 使用时区
USE_TZ = True

7.静态文件配置

在项目根目录创建一个static目录,用于存放静态文件(css, js, image, font等)

STATIC_URL = '/static/'  别名
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

8.创建应用

本项目主要由4个模块组成,分别为新闻文章模块,课程视频播放模块,文档下载模块,用户管理模块等。在项目根目录下创建一个apps目录用于存放各子应用。
然后cd到apps目录创建各子应用

python ../manage.py startapp news
python ../manage.py startapp course
python ../manage.py startapp doc
python ../manage.py startapp user

在虚拟机创建完应用后记得要下载下来

再到settings文件中,加入如下设置

import sys

# 创建应用之后,把apps目录加入到sys.path中(配置在BASE_DIR之后)
sys.path.insert(0, BASE_DIR)
sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))

在这里插入图片描述
接着分别在apps文件夹和项目根目录文件夹上右键,加入到Source Root中,优化导入路径(pycharm提示)。
在这里插入图片描述
最后将应用添加到INSTALLED_APPS列表中

INSTALLED_APPS = [
	# ...
    'user',
    'news',
    'doc',
    'course'
]

在这里插入图片描述

四、将项目推送到码云

手动同步代码(更保险),然后运行django服务,检查无误后就可以提交代码,然后推送到码云了

  • 编写.gitignore文件

    为了让git的运行速度更快,有些不需要添加到仓库的文件比如pycharm的项目设置文件.idea文件夹,可以通过.gitignore文件来设置忽略.idea文件夹, 在.gitignore文件的最后加上下面两行

....
# pycharm
.idea/

在这里插入图片描述
在这里插入图片描述

  • 配置好推送人的身份信息(填写自己的名字和邮箱地址)
$ git config user.name "qiyu"
$ git config user.email "[email protected]"
  • 将代码推送至本地仓库
  • 我们用git status命令查看一下工作区文件状态,发现我们刚才改动的.gitignore文件和未上传过的文件
    在这里插入图片描述
# 工作区添加到暂存区
$ git add .
# 暂存区提交到仓库
$ git commit -m '项目初始化'
  • 将代码推送到码云
$ git push origin master

在这里插入图片描述
注意,如果出现,推送失败就需要运行强推(不推荐)

$ git push -f origin master

最后上传远程仓库成功。
在这里插入图片描述

发布了12 篇原创文章 · 获赞 1 · 访问量 996

猜你喜欢

转载自blog.csdn.net/fksfdh/article/details/98321663