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 再重新做
'''

浙公网安备 33010602011771号