首页 > 数据库 >luffy数据库创建 User模块用户表 开启media访问

luffy数据库创建 User模块用户表 开启media访问

时间:2023-02-27 20:46:14浏览次数:47  
标签:创建 media 数据库 luffy 用户 --- User mysql

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

相关文章