Day 3: django web 项目环境搭建(linux+pycharm)

项目环境:
本地:windows + pycharm
remote: linux + django + mysql + …

1. linux环境下创建django项目

1.1 创建python虚拟环境

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

1.2 创建django项目

​ 1) linux中安装django

pip install django==2.1.10

​ 2) linux中创建django项目

​ 创建一个文件夹,cd进去

django-admin startproject project_name

​ 3) 本地pycharm创建项目

  • 配置远程解释器(setting --> project interpreter)

  • 配置远程项目路径:虚拟机中项目根目录路径 (deployment --> configuration)

  • 设置同步配置 (deployment --> options)

  • 下载代码

2. django项目的配置

2.1 配置访问ip

ALLOWED_HOSTS = ['*']         # 允许所有IP访问

2.2 配置模板路径

在项目根目录下创建模板文件包templates.

settings.py中设置TEMPLATES 路径

'DIRS': [os.path.join(BASE_DIR, 'templates')],

2.3 创建数据库

  1. 创建数据库
 create database db_name charset=utf8mb4;

2)创建user,授权

create user 'user_name'@'%' identified by 'your_password';
grant all privileges on db_name.* to 'user_name'@'%';

考虑安全问题,最好把user设置为@‘localhost’

3)settings.py中配置数据库参数

方法一:直接在settings.py中写死

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_name',
        'USER': 'user_name',
        'PASSWORD': 'your_password',
        'HOST': '127.0.0.1',              # 自行修改
        'PORT': '3306',
    }
}

方法二(推荐):创建一个文档储存数据库信息,在settings.py中引用

在根目录创建文件夹utils

在utils中创建文件夹db

在db中新建文件(file) db.cnf

在db.cnf中写入数据库信息

[client]
database = db_name
user = user_name
password = your_password
host = your_ip
port = 3306
default-character-set = utf8

settings.py中

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
        'read_default_file': 'utils/db/db.cnf',    # 数据库配置文件路径
        }
    }
}
  1. 虚拟环境中安装PyMySQL或者mysqlclient(推荐)

​ 如果安装PyMySQL : pip install PyMySQL
在init.py中设置

# import pymysql
# pymysql.install_as_MySQLdb()

​ 如果安装mysqlclient

 #更新
 sudo apt-get update
 sudo apt-get install python3-pip
# 解决mysql_config not found,安装依赖库
 sudo apt-get install libmysqld-dev
 # 安装mysqlclient
  pip3 install mysqlclient==1.3.9   # 最新版本不兼容

4) 检查环境中是否安装了redis client

redis-cli

2.4 缓存配置

settings.py中配置:

CACHES = {
	# 默认缓存引擎,信息存储在index为0的数据库
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    # 将session信息储存在Index为1的数据库
    "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'

要使用redis管理缓存还需要安装插件:

pip install django-redis

2.5 配置日志器

根目录下创建logs包

settings.py中配置:

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,
        },
    },
    
}

2.6 时区,语言设置

settings.py

LANGUAGE_CODE = 'zh-hans'     # 中文

TIME_ZONE = 'Asia/Shanghai'   # 时区

2.7 静态文件配置

  • 在项目根目录创建static包

  • settings.py中static_url后添加

    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    

2.8 创建应用

  1. 在根目录下创建一个package apps,存放所有app

  2. linux CD到 ~/apps

  3. 执行 上级目录的manage.py,在apps中创建app

python ../manage.py startapp app_name

4)创建好后下载到本地

5) 优化。

  • 在settings.py中
import sys

# 在BASE_DIR后
# 把刚才创建好的apps文件目录加入到sys.path中,加快检索速度
sys.path.insert(0, BASE_DIR)
sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))
  • 把根目录设置为源文件夹:右击 --> make directory as --> sources root
  • 把apps设置为源文件夹

6) 在INSTALLED_APPS中注册

你可能感兴趣的:(django)