Django项目创建的准备工作【3】

【 一 】建立数据库

image-20240509195336089

  • 创建库: 命令(指定编码)

  • 创建用户: 并授权

    • 用户: luffy: 密码xxxxxx , 只授予luffy库权限

  • 使用mysql创建lufy数据库

    • root账号和密码--->万一泄露---》整个数据库就不安全了。
      创建个用户,这个用户只对当前项目 库 有权限

解决方法:

  • 给每个项目创建一个数据库用户

  • 在mysql8中的utf8 就是utf8mb3

    create database luffy default charset=utf8mb4;
    #2 查看用户
    SELECT User, Host FROM mysql.user;
    #3 创建用户
    CREATE USER 'luffy'@'localhost' IDENTIFIED BY '123123?';
    CREATE USER 'luffy'@'%' IDENTIFIED BY '123123?';
    # 授权
    GRANT ALL PRIVILEGES ON luffy.* TO 'luffy'@'localhost' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON luffy.* TO 'luffy'@'%' WITH GRANT OPTION;
  1. 创建luffy库

create database luffy default charset=utf8mb4;

这条命令在MySQL中创建了一个名为luffy的数据库,并指定其默认字符集为utf8mb4utf8mb4是一个能够存储四字节Unicode字符的字符集,它支持包括emoji在内的广泛字符。 \2. 查看用户

​
SELECT User, Host FROM mysql.user;

这条命令从mysql.user系统表中查询所有的MySQL用户以及他们对应的主机(Host)信息。这可以帮助你了解当前MySQL服务器上有哪些用户。 \3. 创建用户

CREATE USER 'luffy'@'localhost' IDENTIFIED BY 'Luffy123?';  
CREATE USER 'luffy'@'%' IDENTIFIED BY 'Luffy123?';

这两条命令在MySQL中创建了两个用户,但他们的Host(来源地址)不同。第一个用户'luffy'@'localhost'只能从localhost(即该MySQL服务器本身)访问。第二个用户'luffy'@'%'可以从任何地址访问(%是一个通配符,代表任何主机)。这两个用户都有相同的密码Luffy123?。 \4. 授权

GRANT ALL PRIVILEGES ON luffy.* TO 'luffy'@'localhost' WITH GRANT OPTION;  
GRANT ALL PRIVILEGES ON luffy.* TO 'luffy'@'%' WITH GRANT OPTION;
  • 注意

你实际上是授予了名为 luffy 的用户(无论是从 localhost 还是从任何其他主机 % 连接)对 luffy 数据库的所有权限,包括增删改查(SELECT, INSERT, UPDATE, DELETE)以及授予其他用户权限的权限(WITH GRANT OPTION)。

这意味着任何使用 luffy 用户名和相应密码的用户(无论是从 localhost 还是从远程主机连接)都可以对 luffy 数据库执行任何操作,包括查看、修改、删除表中的数据,以及创建、修改或删除表本身。

其他用户(非 luffy 用户)默认情况下是看不到 luffy 数据库的内容的,除非他们也被授予了对 luffy 数据库的相应权限。但是,他们仍然可以看到 luffy 数据库的存在,因为 SHOW DATABASES; 命令会列出服务器上的所有数据库,无论用户是否有权限访问它们。

image-20240509194744078

image-20240509200803910

image-20240509201630726

【 二 】连接数据库

【 1 】一般连接(傻瓜连接)

  • 个人练练就可以了

# 如果用户和密码直接写死 ----》 代码泄露 ----》 这样就很不安全!!!
​
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'luffy',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'USER': 'luffy',
        'PASSWORD': '123123?'
    }
}

image-20240509202839152

  • 安装 mysqlclient

# pip install mysqlclient

image-20240509203058083

image-20240509203118885

##

【 2 】建议使用

  • 代码

# seetings.py
​
user = os.environ.get("MYSQL_USE",'luffy')
password = os.environ.get("MYSQL_PWD","123123?")
​
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'luffy',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'USER': user,
        'PASSWORD': password
    }
}
  • 编辑环境变量

image-20240509204210222

image-20240509204125791

做完之后就会显示

image-20240509204857245

这里上面显示

你的 Django 项目正在运行开发服务器,并且检测到了未应用的迁移。在继续之前,建议你应用这些迁移,以确保项目正常运行。

你可以运行以下命令应用迁移:

python manage.py migrate

这将应用所有未应用的迁移,使数据库与项目的当前状态保持同步。完成后,重新启动开发服务器,你的项目应该可以正常运行了。

【 3 】创建表

  • 注意要在根目录进行数据迁移!!!

from django.db import models
from django.contrib.auth.models import AbstractUser
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 = 'lufy_user'
        verbose_name = '用户表'
        verbose_name_plural = verbose_name
​
    def __str__(self):
        return self.username
    
# settings.py配置文件
# 扩写auth的user表 在AbstractUser必须这样
AUTH_USER_MODEL='user.User'
  • 这个就说明缺少需要pillow包的支持

image-20240509205632096

image-20240509205720330

  • 注意要在根目录进行数据迁移!!!
# python manage.py makemigrations
# python manage.py migrate

image-20240509210104603

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/791424.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

不同材质酒店智能开关的功能特点详解

在当今的酒店行业中,智能开关已成为提升客户体验和管理效率的重要设备。而不同材质的智能开关,不仅在外观上各具特色,其功能特点也有所差异。 玻璃材质智能开关: 玻璃材质的智能开关给人一种时尚、简约且高端的感觉。其表面光滑&a…

前端面试39(关于git)

针对前端开发者的Git面试题可以覆盖Git的基础概念、常用命令、工作流程、团队协作、以及解决冲突等方面。以下是一些具体的Git面试 Git基础知识 什么是Git? Git是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调多个人共同在一个项…

tensorflow张量生成以及常用函数

张量tensor:多维数组(列表) 阶:张量的维数 维数 阶 名字 例子 0-D 0 标量 scalar s 1, 2, 3 1-D 1 向量 vector…

JS进阶-原型

学习目标: 掌握原型 学习内容: 原型constructor属性对象原型原型继承原型链综合案例 原型: 构造函数通过原型分配的函数是所有对象所共享的。 JavaScript规定,每一个构造函数都有一个prototype属性,指向另一个对象&…

vscode c++可以找到声明却无法自动补全

这个问题折磨了我将近一个月,今天终于被解决了,特此记录 情景再现 事情的起因是我在学习华为的Ascend C算子,需要编写C代码。关于怎么下载库文件怎么编译之类的不是本文的重点,重点是自动补全。 我已经拿到库文件了&#xff0c…

力扣题解(设计跳表)

1206.设计跳表 已解答 不使用任何库函数,设计一个 跳表 。 跳表 是在 O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。跳表相比于树堆与红黑树,其功能与性能相当,并且跳表的代码长度相较下更短,其设计思想与链表相似。 …

Linux文件编程应用

目录 一、实现cp命令 二、修改程序的配置文件 三、写一个整数/结构体到文件 1.写一个整数到文件 2.写一个结构体到文件 四、写结构体数组到文件 我们学习了文件编程的常用指令以及了解文件编程的基本步骤后,试着来写一些程序实现某些功能。(没有学…

oracle哪些后台进程不能杀?

oracle 有很多的后台进程,在遇到特殊情况的时候如锁表,如果等待的是一个后台进程,那这时就需要考量是不是能杀掉这个后台进程?杀掉这个后台进程会不会引起实例崩溃?本着实践出真知,本文针对oracle 11g&…

昇思25天学习打卡营第23天 | Pix2Pix实现图像转换

内容介绍: Pix2Pix是基于条件生成对抗网络(cGAN, Condition Generative Adversarial Networks )实现的一种深度学习图像转换模型,该模型是由Phillip Isola等作者在2017年CVPR上提出的,可以实现语义/标签到真实图片、灰…

二分法求函数的零点 信友队

题目ID&#xff1a;15713 必做题 100分 时间限制: 1000ms 空间限制: 65536kB 题目描述 有函数&#xff1a;f(x) 已知f(1.5) > 0&#xff0c;f(2.4) < 0 且方程 f(x) 0 在区间 [1.5,2.4] 有且只有一个根&#xff0c;请用二分法求出该根。 输入格式 &#xff08;无…

政安晨:【Keras机器学习示例演绎】(五十三)—— 使用 TensorFlow 决策森林进行分类

目录 简介 设置 准备数据 定义数据集元数据 配置超参数 实施培训和评估程序 实验 1&#xff1a;使用原始特征的决策森林 检查模型 实验 2&#xff1a;目标编码决策森林 创建模型输入 使用目标编码实现特征编码 使用预处理器创建梯度提升树模型 训练和评估模型 实验…

从零开始学习嵌入式----C语言框架梳理与后期规划

目录 一、环境搭建. 二、见解 三、C语言框架梳理 四、嵌入式学习规划流程图&#xff08;学习顺序可能有变&#xff09; 一、环境搭建. C语言是一门编程语言&#xff0c;在学习的时候要准备好环境。我个人比较喜欢用VS,具体怎么安装请百度。学习C语言的时候&#xff0c;切忌…

Spring中如何操作Redis

Spring毕竟是Java中的一个主流框架&#xff0c;如何在这个框架中使用Redis呢&#xff1f; 创建项目并引入相关依赖 然后进行创建。 至此就将Redis的相关依赖引入进来了。 编写Redis配置 将application.properties修改成application.yml 然后编写如下配置&#xff1a; spr…

各向异性含水层中地下水三维流基本微分方程的推导

各向异性含水层中地下水三维流基本微分方程的推导 参考文献&#xff1a; [1] 刘欣怡,付小莉.论连续性方程的推导及几种形式转换的方法[J].力学与实践,2023,45(02):469-474. 文章链接 水均衡的基本思想&#xff1a; ∑ 流 入 − ∑ 流 出 Δ V \sum 流入-\sum 流出\Delta V ∑…

ArduPilot开源飞控之AP_Mount_Siyi

ArduPilot开源飞控之AP_Mount_Siyi 1. 源由2. 框架设计2.1 类和继承2.2 公共方法2.3 保护方法2.4 私有成员和方法2.5 解析状态2.6 重要成员变量 3. 重要方法3.1 AP_Mount_Siyi::init3.2 AP_Mount_Siyi::update3.3 AP_Mount_Siyi::read_incoming_packets3.4 AP_Mount_Siyi::proc…

LabVIEW实现LED显示屏视觉检测

为了满足LED显示屏在生产过程中的严格质量检测需求&#xff0c;引入自动化检测系统是十分必要的。传统人工检测方式存在检测强度高、效率低、准确性差等问题&#xff0c;自动化检测系统则能显著提高检测效率和准确性。视觉检测系统的构建主要包含硬件和软件两个部分。 视觉系统…

深度学习论文: LLaMA: Open and Efficient Foundation Language Models

深度学习论文: LLaMA: Open and Efficient Foundation Language Models LLaMA: Open and Efficient Foundation Language Models PDF:https://arxiv.org/pdf/2302.13971.pdf PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks 1 概述 本文介绍了LLaMA&#xff0…

一二三应用开发平台应用开发示例(7)——文档功能实现示例

概述 在完成文件夹配置工作后&#xff0c;接下来配置文档管理系统最核心的管理对象“文档”。 依旧是使用平台低代码配置工作来配置&#xff0c;配置流程跟文件夹的配置是相同的&#xff0c;以下简要说明&#xff0c;重点是新涉及到的功能或注意点。 创建实体 配置模型属性 …

【Dison夏令营 Day 15】 Python 鸡蛋捕手

在本次课程中&#xff0c;我们使用 Python 创建了经典的 "抓蛋 "游戏。在这个游戏中&#xff0c;每抓到一个鸡蛋就能赢得 10 分&#xff0c;而每掉落一个鸡蛋就会损失一条命。 小时候&#xff0c;我们都玩过 "抓鸡蛋 "游戏。我们使用海龟软件包在 Python …

【linux】阿里云centos配置邮件服务

目录 1.安装mailx服务 2./etc/mail.rc 配置增加 3.QQ邮箱开启smtp服务&#xff0c;获取授权码 4.端口设置&#xff1a;Linux 防火墙开放端口-CSDN博客 5.测试 1.安装mailx服务 yum -y install mailx 2./etc/mail.rc 配置增加 #邮件发送人 set from924066173qq.com #阿里…