​ 一,创建django虚拟环境。

1,创建python虚拟环境

在虚拟机上创建python虚拟环境

mkvirtualenv -p /usr/python3 虚拟环境名

(需要提前安装虚拟环境这个包)

pip install mkvirtualenv

2,创建django项目。

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

pip install django==2.1.10

2.创建django项目

cd ~/project/		# cd到你想放django项目路径的地方
django-admin startproject project

3.在本地创建pycharm项目

在本地创建一个存放项目的文件夹(一个项目最好单独有一个文件夹)

3,配置远程连接

远程连接
在这里插入图片描述

在这里插入图片描述
配置虚拟环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
远程连接点击move然后ok会弹出这个界面
在这里插入图片描述
然后点击finish,应用就配置完成

4,下载项目文件

在这里插入图片描述
运行manage.py
在这里插入图片描述
运行成功后
在这里插入图片描述
如果访问不了就在runserver后加上IP:8001
在这里插入图片描述
在次运行manage.py文件如下
在这里插入图片描述
点击运行后的路径出现小火箭则运行成功(如果报错就在项目的配置文件中setting添加允许host)
在这里插入图片描述
在这里插入图片描述

5,Django项目配置

1.配置模板文件

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        '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',
            ],
            # 将模板标签内置到模板中 https://docs.djangoproject.com/en/2.1/topics/templates/
            'builtins': ['django.templatetags.static'],
        },
    },
]

2.配置mysql数据库

1,创建数据库(在虚拟机创建,如果没有安装mysql请先安装)

mysql> create database project charset=utf8mb4;
Query OK, 1 row affected (0.00 sec)

2,配置settings

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

3.安装mysql数据库的python驱动(在虚拟机中安装)
mysql数据库配置完成后,运行django服务会报如下错误,官方推荐安装mysqlclient1.3.7以上版本,也可以安装pymysql,并且需要在settings.py文件所在目录包中的__init__.py 中导入pymysql。

Did you install mysqlc'lient

1)安装mysqlclient

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

2)安装pymysql

# 安装pymysql
pip install pymysql==0.9.3 -i https://pypi.doubanio.com/simple

settings.py文件所在目录下的__init__.py导入

import pymysql
pymysql.version_info = (1, 4, 13, "final", 0)
pymysql.install_as_MySQLdb()  # 使用pymysql代替mysqldb连接数据库

推荐使用第一种方式,mysqlclient更快更安全,官方推荐。

3.配置redis缓存

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

# 在虚拟机中安装django-redis
pip install django-redis==4.11.0	
# 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',
        }
    },
    'verify_code':{
            'BACKEND': 'django_redis.cache.RedisCache',
            'LOCATION': 'redis://127.0.0.1:6379/2',
            '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
为何要用 django-redis ?
因为: redis 读数据快,结构类型简单,可以和MySQL配合使用补充MySQL,尤其是再数据多的时候

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/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')
   ]

6,创建子应用

在项目文件中创建五个文件夹【utils(工具),logs(日志),template(模板),apps(子应用),static(静态文件)】

然后cd到apps目录创建各子应用(在虚拟机中进行)

   ~$ cd ~/code/apps/
   ~/code/apps$ workon project
   (project) ~/code/apps$ python ../manage.py startapp 子应用名1
   (project) ~/code/apps$ python ../manage.py startapp 子应用名2

如果报错(file “manage.py”, line 16 ) from exc ^ SyntaxError: invalid syntax)解决方案

   ~$ cd ~/code/apps/
   ~/code/apps$ workon project
   (project) ~/code/apps$ python3 ../manage.py startapp 子应用名1
   (project) ~/code/apps$ python3 ../manage.py startapp 子应用名2

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

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

接着分别在apps文件夹和项目根目录文件夹上右键,加入到Source Root中,优化导入路径(pycharm提示)。

最后将应用添加到INSTALLED_APPS列表中

   INSTALLED_APPS = [
   	# ...
       '子应用名1',
       '子应用名2',
   ]
GitHub 加速计划 / li / linux-dash
10
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:5 天前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐