djagno中mysql的安裝和model的簡單使用

以下內(nèi)容都是基于python3.x 版本!

mysql的安裝

官網(wǎng)下載: https://downloads.mysql.com/archives/community/
一定要下載社區(qū)版。。

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

  1. 解壓
    解壓下載后的文件,拷貝到任意目錄,盡量不要帶有中文
    例如: D:\SDK\mysql-5.7.31-winx64
  2. 添加配置文件
    進(jìn)入sql文件夾的根目錄,添加文件,名為 mysql.ini,內(nèi)容如下
[mysqld]
# 端口號
port=3306

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

# 數(shù)據(jù)庫數(shù)據(jù)的存儲路徑,可以隨意更改
datadir=D:\\datas\\sql_datas\\mysql5.7.31_datas
  1. 執(zhí)行數(shù)據(jù)庫初始化
    執(zhí)行如下命令, cmd,并使用管理員運行。
    注意:是mysqld.exe 不是 mysql.exe
"D:\SDK\mysql-5.7.31-winx64\bin\mysqld.exe" --initialize-insecure

注意:報 msvcr120.dll 丟失的話,

  • 請到Microsoft Visual C ++可再發(fā)行組件包下載網(wǎng)站下載 vc_redist.x64.exe或vc_redist.x84.exe
  • 或者百度下載 微軟組合包
  1. 執(zhí)行服務(wù),把mysql添加到系統(tǒng)服務(wù)
    mysql57 是服務(wù)名,可以隨意命名。 注意:該名稱就是以后啟動或停止的服務(wù)名
"D:\SDK\mysql-5.7.31-winx64\bin\mysqld.exe" --install mysql57
  1. 啟動服務(wù) 和 停止服務(wù)
net start mysql57
net stop mysql57

為了方便,一般會將mysql 添加到環(huán)境變量

將bin目錄的完整路徑添加到環(huán)境變量

# 測試連接
mysql -h 127.0.0.1 -p 3306 -u root -p

如果是本地的話,可直接

mysql -u root -p

記得啟動服務(wù)。

其他

  • 設(shè)置密碼
    如果沒有設(shè)置密碼。可以在登陸mysql成功后,
set password = password("密碼");
  • 查看已有文件夾(數(shù)據(jù)庫)
show databases;
  • 修改密碼(忘記密碼)
    1. 首先要停止 mysql 服務(wù);
    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
# 添加下面的內(nèi)容
skip-grant-tables=1

4.保存,重新啟動 mysql 服務(wù) , 以無密碼的方式登錄 mysql;

# 先執(zhí)行
use mysql;
#再執(zhí)行
update user set authentication_string = password("新密碼"),password_last_changed=now() where user='root';
  1. 退出mysql,停止服務(wù)。
  2. 再次修改 mysql.ini 文件, 刪除下面的內(nèi)容
# 刪除下面的內(nèi)容
skip-grant-tables=1

重新啟動mysql服務(wù), 正常登錄 ok。。。

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

python 使用mysql數(shù)據(jù)庫的分兩個版本

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

Python-MySQL資格最老,核心由C語言打造,接口精煉,性能最棒,缺點是環(huán)境依賴較多,安裝復(fù)雜,近兩年已停止更新,只支持Python2,不支持Python3。
PyMySQL為替代Python-MySQL而生,純python打造,接口與Python-MySQL兼容,安裝方便,支持Python3。

mysql的配置

models是用來跟數(shù)據(jù)庫綁定的對象
下面以mysql為例說明:

  • 配置參數(shù)
    把庫 和 數(shù)據(jù)庫連接的相關(guān)參數(shù)(賬戶,密碼,端口等)配置到 setting.py 里
    連接的優(yōu)先級:
    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 的優(yōu)先級會高于用 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 使用說明

  • 創(chuàng)建model
    所有model類都需要繼承自 models.Model
class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    size = models.IntegerField()
    # 帶默認(rèn)值
    age = models.IntegerField(default=1)
    # 允許為空
    data = models.IntegerField(null=True, blank=True)

  • 首先,要創(chuàng)建數(shù)據(jù)庫
    因為django無法創(chuàng)建庫,所以必須手動自己創(chuàng)建庫(以mysql); 注意:編碼是 utf8 不是 utf-8
create database 數(shù)據(jù)庫名稱 default charset=utf8;
  • 根據(jù)model生成庫表
    注意:TestModel 不寫的話,會生成全部model 對應(yīng)的表(包括系統(tǒng)自帶的)。指定的話,只生成指定的model的表;
$ python manage.py makemigrations TestModel  # 讓 Django 知道我們在我們的模型有一些變更
$ python manage.py migrate TestModel   # 創(chuàng)建表結(jié)構(gòu)

控制臺看到幾行 "Creating table…" 的字樣,你的數(shù)據(jù)表就創(chuàng)建好了。
注意:Django 會自動添加一個 id 作為主鍵。

其他注意:
安裝pymysql

pip install pymysql

安裝 mysqlclient

pip install mysqlclient

使用model創(chuàng)建表的時候,要做一下配置。在init.py下添加如下內(nèi)容( setting.py 同級目錄下)

import pymysql
pymysql.install_as_MySQLdb()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容