美文网首页
djagno中mysql的安装和model的简单使用

djagno中mysql的安装和model的简单使用

作者: 墨鱼好黑 | 来源:发表于2022-08-28 14:50 被阅读0次

以下内容都是基于python3.x 版本!

mysql的安装

官网下载: https://downloads.mysql.com/archives/community/
一定要下载社区版。。

Windows下 5.x版本的mysql安装方式(免安装包的安装)

  1. 解压
    解压下载后的文件,拷贝到任意目录,尽量不要带有中文
    例如: D:\SDK\mysql-5.7.31-winx64
  2. 添加配置文件
    进入sql文件夹的根目录,添加文件,名为 mysql.ini,内容如下
[mysqld]
# 端口号
port=3306

# sql的路径
basedir=D:\\SDK\\mysql-5.7.31-winx64

# 数据库数据的存储路径,可以随意更改
datadir=D:\\datas\\sql_datas\\mysql5.7.31_datas
  1. 执行数据库初始化
    执行如下命令, cmd,并使用管理员运行
    注意:是mysqld.exe 不是 mysql.exe
"D:\SDK\mysql-5.7.31-winx64\bin\mysqld.exe" --initialize-insecure

注意:报 msvcr120.dll 丢失的话,

  • 请到Microsoft Visual C ++可再发行组件包下载网站下载 vc_redist.x64.exe或vc_redist.x84.exe
  • 或者百度下载 微软组合包
  1. 执行服务,把mysql添加到系统服务
    mysql57 是服务名,可以随意命名。 注意:该名称就是以后启动或停止的服务名
"D:\SDK\mysql-5.7.31-winx64\bin\mysqld.exe" --install mysql57
  1. 启动服务 和 停止服务
net start mysql57
net stop mysql57

为了方便,一般会将mysql 添加到环境变量

将bin目录的完整路径添加到环境变量

# 测试连接
mysql -h 127.0.0.1 -p 3306 -u root -p

如果是本地的话,可直接

mysql -u root -p

记得启动服务。

其他

  • 设置密码
    如果没有设置密码。可以在登陆mysql成功后,
set password = password("密码");
  • 查看已有文件夹(数据库)
show databases;
  • 修改密码(忘记密码)
    1. 首先要停止 mysql 服务;
    2. 修改Mysql配置,重新启动mysql(无账号模式),重新 set 密码;
    3. 找到 配置 文件(上面添加的mysql.ini 文件),添加下面配置
[mysqld]
port=3306
basedir=D:\\SDK\\mysql-5.7.31-winx64
datadir=D:\\datas\\sql_datas\\mysql5.7.31_datas
# 添加下面的内容
skip-grant-tables=1

4.保存,重新启动 mysql 服务 , 以无密码的方式登录 mysql;

# 先执行
use mysql;
#再执行
update user set authentication_string = password("新密码"),password_last_changed=now() where user='root';
  1. 退出mysql,停止服务。
  2. 再次修改 mysql.ini 文件, 删除下面的内容
# 删除下面的内容
skip-grant-tables=1

重新启动mysql服务, 正常登录 ok。。。

-------------------------------------fenge yixia --------------------------------------------------

python 使用mysql数据库的分两个版本

  • MySQLdb : 2.x 的python版本;
  • PyMySQL :3.x 的python 版本;

Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持Python3。
PyMySQL为替代Python-MySQL而生,纯python打造,接口与Python-MySQL兼容,安装方便,支持Python3。

mysql的配置

models是用来跟数据库绑定的对象
下面以mysql为例说明:

  • 配置参数
    把库 和 数据库连接的相关参数(账户,密码,端口等)配置到 setting.py 里
    连接的优先级:
    1、OPTIONS ( 最高)
    2、NAME、USER、PASSWORD、HOST、PORT
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dj_demo02',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '3306',

        # 使用options 的优先级会高于用 NAME、USER 等字段
        'OPTIONS': {
            'read_default_file': BASE_DIR / 'my.cnf',
        },
    }
}

my.cnf 写法

# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8

model 使用说明

  • 创建model
    所有model类都需要继承自 models.Model
class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    size = models.IntegerField()
    # 带默认值
    age = models.IntegerField(default=1)
    # 允许为空
    data = models.IntegerField(null=True, blank=True)

  • 首先,要创建数据库
    因为django无法创建库,所以必须手动自己创建库(以mysql); 注意:编码是 utf8 不是 utf-8
create database 数据库名称 default charset=utf8;
  • 根据model生成库表
    注意:TestModel 不写的话,会生成全部model 对应的表(包括系统自带的)。指定的话,只生成指定的model的表;
$ python manage.py makemigrations TestModel  # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel   # 创建表结构

控制台看到几行 "Creating table…" 的字样,你的数据表就创建好了。
注意:Django 会自动添加一个 id 作为主键。

其他注意:
安装pymysql

pip install pymysql

安装 mysqlclient

pip install mysqlclient

使用model创建表的时候,要做一下配置。在init.py下添加如下内容( setting.py 同级目录下)

import pymysql
pymysql.install_as_MySQLdb()

相关文章

网友评论

      本文标题:djagno中mysql的安装和model的简单使用

      本文链接:https://www.haomeiwen.com/subject/lpohnrtx.html