2、路飞后端配置

路飞后台的配置,创建项目,重构项目的目录,配置文件的修改,数据库搭建

一、luffy后台配置

1、重构项目目录

# 创建luffy虚拟环境,安装django
	mkvirtualenv -p python3 luffy
    pip install django==2.2.2
# 使用pycharm创建项目
	选择luffy虚拟环境的解释器
# 重构项目目录
	luffy_api  # 项目名字
        -luffy_api # 小路飞
        	-apps     # 所有app
            -lib      # 第三方库
            -settings # 配置文件存放路径
            -utils    # 工具方法            
            -urls.py  # 根路径
            -wsgi.py  # 上线使用
       -manage.py     # 开发阶段项目入口
    
# 在apps下创建app,来到apps路径下
	python ../../manage.py startapp user
    
# 项目如果要顺利跑,配置路径得正确--》修改配置文件路径
如果想要用python manage.py runserver命令跑
需要去manage.py里更改这行代码如下
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.dev')

如果想用 pycharm中点击运行,需要在点击运行的下拉框编辑配置一栏luffy_api.settings.dev配置
    
# 我们想以后注册app,直接写app名字
    #在配置文件中加入
    # 把apps路径和小路飞BASE_DIR,加入到环境变量
    import sys
    sys.path.append(BASE_DIR)
    sys.path.append(os.path.join(BASE_DIR,'apps'))

2、配置文件说明

import os
import sys

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 把apps路径加入到BASE_DIR加入到环境变量中
sys.path.append(BASE_DIR)
sys.path.append(os.path.join(BASE_DIR, 'apps'))

# 密钥:django中涉及到加密的都是使用密钥
SECRET_KEY = 'r$d472e%i^4e941js!1*tn4(ya^r90u+qf&&$#f)u3l@27l=*)'

# 调试模式,开发阶段使用,项目上线需要关闭
DEBUG = True
# 项目部署的地址,关闭调式模式时必须要填入内容
ALLOWED_HOSTS = []

# 注册应用配置
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user'  # 注册user应用
]


# 中间件配置
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# 根路由的路径
ROOT_URLCONF = 'luffy_api.urls'

# 模板配置
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',
            ],
        },
    },
]

# 项目上线
WSGI_APPLICATION = 'luffy_api.wsgi.application'

# 数据库配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, '../../db.sqlite3'),
    }
}

# 忽略
AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

# 国际化配置
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

# 静态文件相关
STATIC_URL = '/static/'

3、luffy数据库搭建

# 1 在配置文件中修改
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'luffy',  # 数据库名字
        'HOST': '127.0.0.1',  # 数据库的地址
        'PORT': 3306,
        'USER': 'luffynew',  # luffy用户,数据的用户
        'PASSWORD': 'Luffy123?'  # luffy用户密码
    }
        
# 2 创建luffy库
	mysql -h127.0.0.1 -P3306 -uroot -p  # 远程连接
    create database luffy default charset=utf8;  # 创建库
    
# 3 查看用户
 select user,host,password from mysql.user;
 select user,host,authentication_string from mysql.user;  # 5.7往后的版本

# 4 创建并授权用户
# grant 权限(create, update) on 库.表 to '账号'@'host' identified by '密码'

	1.配置任意ip都可以连入数据库的账户
	grant all privileges on luffy.* to 'luffy'@'%' identified by 'Luffy123?';

	2.由于数据库版本的问题,可能本地还连接不上,就给本地用户单独配置
	grant all privileges on luffy.* to 'luffy'@'localhost' identified by 'Luffy123?';

	3.刷新一下权限
	flush privileges;

'''
只能操作luffy数据库的账户
账号:luffy
密码:Luffy123?
'''


# 5 django要操作mysql,需要使用pymysql
	-django操作mysql,底层用的mysqldb模块,在python2可以用,3.x不维护了
    -基于mysqldb做了---》pymysql即支持python2,又支持python3,不支持django,需要改源码
    
    -基于mysqldb做了---》mysqlclient即支持python2,又支持python3,无缝支持django,这个模块可能装不上
    -linux,win:http://www.liuqingzheng.top/python/%E5%85%B6%E4%BB%96/01-%E5%90%84%E4%B8%BB%E6%B5%81Linux%E7%B3%BB%E7%BB%9F%E8%A7%A3%E5%86%B3pip%E5%AE%89%E8%A3%85mysqlclient%E6%8A%A5%E9%94%99/
               
# -django 2.0.7 以后,就不支持pymysql了,所以才要去应用或者项目文件夹下的__init__里去配置我们之前连接经常写的代码,它的本质就是个猴子补丁
import pymysql
pymysql.install_as_MySQLdb()

# 还是推荐使用mysqlclient

4、user模块创建User表

一个网站必须要有用户吧,有用户就得有用户表,我们可以使用内置的auth_user表,但auth_user表字段都是固定的,所以我们需要对它进行扩写,扩写需要继承一个内置的 AbstractUser 类,来定义一个自己的Model类。

# 1  新建user的app,在models写入

from django.db import models
from django.contrib.auth.models import AbstractUser


class User(AbstractUser):
    mobile = models.CharField(max_length=11, unique=True)  # 手机号字段,最多11位,唯一字段
    icon = models.ImageField(upload_to='icon', default='icon/default.png')  # 头像字段

    class Meta:
        db_table = 'luffy_user'  # 修改表名
        verbose_name = '用户表'
        verbose_name_plural = verbose_name  # 在admin中显示表名为用户表 


# 2 重写auth的user表需要去配置文件中配置	
AUTH_USER_MODEL = 'user.user' # app名字.表名        

# 3 安装pillow模块

# 4 执行数据库迁移的两条命令
python manage.py makemigrations 
python manage.py migrate  

'''
注意:	扩写auth的user表,一定要在修改完用户表后再迁移    
-如果没修改auth的user表之前,提前迁移了    	
1 删库        
2 删除迁移文件(app迁移文件)        
3 删除admin和auth的迁移文件        
4 再重新做
'''
posted @ 2022-02-03 15:01  黑影Poco  阅读(55)  评论(0)    收藏  举报