1 luffy数据库创建
1.1 创建用户创建库
# 创建luffy数据库
# 之前项目操作数据库,都是使用root用户,root用户权限太高了,在公司里,一般不会给你root用户权限
# 如果开发人员是root权限,数据安全性就很差
# 开发人员,专门创建一个用户,用户只对当前项目的库有操作权限
# 创建一个luffy库,创建luffy用户,luffy用户只对luffy库有操作权限
# 创建luffy数据库
"""
1.管理员链接数据库
>: mysql -uroot -proot
2.创建数据库
>: create database luffy default charset=utf8;
3.查看用户
>: select user,host,authentication_string from mysql.user;
# 5.7往后的版本
>: select user,host,authentication_string from mysql.user;
"""
# 创建路飞用户,授予luffy库所有权限
"""
设置权限账号密码
# 授权账号命令: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
密码:Lyffy123?
"""
1.2 使用项目链接库
# 项目操作mysql,需要安装模块
-pymysql
-mysqlDB
-mysqlclient
-历史:原来py2上有个操作mysql的模块叫mysqlDB,但到py3,没有支持py3,django默认使用这个模块去链接mysql,默认使用-mysqlDB链接,-mysqlDB不支持py3,运行报错
-我们使用pymysql,作为连接mysql的数据库模块,但是需要加代码
import pymysql
pymysql.install_as_mysqldb() # 猴子补丁
-django 2.2.2以后,还使用pymysql,需要改django原代码
-统一使用mysqlclient来作为操作mysql的底层库
-基于py2的mysqldb,在py3上更新了,但是名字改成了mysqlclient
-使用mysqlclient,只需要安装这个模块,不需要再写任何代码,直接用即可
-但是:mysqlclient这个模块,不好装
-win 一般人品好,人品好,pip install mysqlclient
-人品不好,装不了,centos部署项目,后面会讲centos上如何装
# mysqlclient
pip install mysqlclient
########## 配置文件修改,连接mysql,使用路飞用户
# 用户名密码谢斯在代码中了,保证安全
name = os.environ.get('LUFFY_NAME', 'luffy')
password = os.environ.get('LUFFY_PASSWORD', 'Luffy123?')
# 拓展:有的公司,直接有个配置中心---》服务--》只用来村饭美国配置文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'luffy',
'USER': name,
'PASSWORD': password,
'HOST': '127.0.0.1',
'PORT': 3306
}
}
2 软件开发模式
# 瀑布模式:bbs项目就是按照这种模式
-需求分析---》设计--》创建数据库 所有都创建---》开发(3个月)---》交给测试--》测试通过---》上线
# 敏捷开发
-需求分析---》设计---》只设计一个板块---》开发(2周)---》交给测试---》运维上线(测试环境)
-设计---》只设计一个板块---》开发(2周)---》交给测试---》运维上线(测试环境)
-一个sprint周期
-scrum敏捷项目管理
3 User模块用户表
# 你觉得使用auth表扩写,项目一定不要先迁移,先建好用户表在迁移
已经迁移完了,在想用auth的user表
-删库,删迁移文件所有app
-删admin和auth迁移文件
# 用户表使用auth表扩写 pip install Pillow
class User(AbstractUser):
# 扩写手机号和头像字段
mobile = models.CharField(max_length=11, unique=True)
# 需要pillow包的支持
icon = models.ImageField(upload_to='icon', default='icon/default/png')
class Meta:
db_table = 'luffy_user'
verbose_name = '用户表'
vervose_name_plural = verbose_name
def __str__(self):
return self.username
# 遇到的问题,明明小luffyapi已经加入到环境变量,程序运行没问题,但是表迁移,就报错,找不到模块
-打印了看一下,确实环境变量有,但是不是个字符串,是个对象
-程序运行,是没问题
-迁移有问题:配置文件中转成字符串,就解决了
4 开启media访问
# 配置文件加入
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 总路由中设置
# re_path('^media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT})
path('media/<path:path>', serve, {'document_root': settings.MEDIA_ROOT})
# 访问
http://127.0.0.1:8000/media/icon/default.png
# 以后使用django的配置文件都用这个
from django.conf import settings
# 这样用如果写了就用自己写的 如果没写就用内置的
标签:创建,media,数据库,luffy,用户,---,User,mysql
From: https://www.cnblogs.com/DragonY/p/17161808.html