1 概述
1.1 Mysql 下載和安裝
- 博客:https://blog.csdn.net/qq_34745941/article/details/122549376
- 若已安裝,請忽略。
1.2 菜單目錄
- 主要使用的文件如圖
2 ORM 框架
2.1 連接 Mysql 模塊:mysqlclient
> pip install mysqlclient
- 若 pip 安裝失敗,可進入 Python 官方庫中下載 whl 文件,操作可參考:
- 博客:https://blog.csdn.net/qq_34745941/article/details/106341898
2.2 創(chuàng)建數(shù)據(jù)庫
# 創(chuàng)建數(shù)據(jù)庫
> create database Demo DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
>
> # 展示數(shù)據(jù)庫
> show databases;
2.3 連接 Mysql
在 settings.py 中,配置 Mysql 的連接串
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 不做修改
'NAME': 'demo', # 數(shù)據(jù)庫名
'USER': 'root', # 用戶名
'PASSWORD': '12345', # 密碼
'HOST': '127.0.0.1', # 主機
'PORT': '3306', # 端口號(默認)
}
}
擴展:
Django 也支持其它數(shù)據(jù)庫:官方文檔:https://docs.djangoproject.com/zh-hans/3.2/ref/databases/
2.4 創(chuàng)建表
注意:
① 該類可重復執(zhí)行
② 若類中的字段存在變更,則數(shù)據(jù)庫表中的字段也同步變更
③ 若該類刪除,則數(shù)據(jù)庫中的表也同步刪除
settings.py 中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config' # 注冊項目
]
models.py 中:
from django.db import models
# 參數(shù) models.Model 固定
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
終端中依次執(zhí)行命令:數(shù)據(jù)庫遷移,同步表結構!
> python manage.py makemigrations
> python manage.py migrate
可選,創(chuàng)建管理員
python manage.py createsuperuser
查詢表:
mysql> use demo;
mysql> desc app01_userinfo;
2.5 增刪改查
views.py:
from django.shortcuts import render, HttpResponse
from app01.models import UserInfo
# Create your views here.
def orm(request):
# 1.添加數(shù)據(jù)
UserInfo.objects.create(name="張三", password=123, age=18)
UserInfo.objects.create(name="李四", password=456, age=20)
UserInfo.objects.create(name="王五", password=789, age=22)
# 2.刪除數(shù)據(jù)
UserInfo.objects.filter(id=3).delete() # 刪除單條數(shù)據(jù)
# UserInfo.objects.all().delete() # 刪除全部數(shù)據(jù)
# 3.獲取數(shù)據(jù)
data_list = UserInfo.objects.all() # return QuerySet 類型數(shù)據(jù)
for obj in data_list:
print(obj.id, obj.name, obj.password, obj.age)
row_obj = UserInfo.objects.filter(id=1).first()
print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)
# 4.更新數(shù)據(jù)
UserInfo.objects.filter(id=1).update(age=30)
return HttpResponse("成功")
urls.py:
from django.urls import path
from app01 import views
urlpatterns = [
# path('admin/', admin.site.urls),
# ORM 測試
path('orm/', views.orm)
]
3 擴展
3.1 ERROR:2026, ‘SSL connection error: unknown error number’
報錯截圖:
- 原因:較高版本的 mysql 的 ssl 是默認開啟的
- 解決:關閉 ssl,同下 5 個步驟
【第一步:登錄 mysql,查看 ssl 開啟情況】
C:\Users\Administrator>mysql -u root -p
Enter password: *****
mysql> show variables like '%ssl%';
【第二步:修改 my.ini】
【第三步:重啟 mysql 服務】
【第四步:重新執(zhí)行命令】文章來源:http://www.zghlxwxcb.cn/news/detail-763761.html
【第五步:啟動 DJango 項目】文章來源地址http://www.zghlxwxcb.cn/news/detail-763761.html
到了這里,關于Python Django 之連接 Mysql 數(shù)據(jù)庫詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!