十四、MySQL与Django之Model基础

数据库

Django默认支持sqlite、mysql、oracel、postgresql等数据库

1、sqlite

django默认使用sqlite数据库 Django.db.backends.sqlite3

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

2、MySQL

Django.db.backends.mysql
MySQL驱动程序:
(默认)MySQLdb(mysql python)
● Mysqlclient
● MySQL
● PyMySQL(纯python的MySQL驱动程序)
修改setting.py,使用MySQL :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_cms', # mysql中创建好的数据库名称
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'', # 访问本机时为空
        'PORT':'3306'
    }
}

修改项目主文件夹下的__init__.py, 加入以下代码 :

import pymysql
pymysql.install_as_MySQLdb()

Models

在应用的models.py中,继承models.Model,定义model,即创建对应数据库的表

from django.db import models

# Create your models here.

class Book(models.Model):
    name=models.CharField(max_length=20,verbose_name="书名")
    price=models.IntegerField(verbose_name="价格")
    pub_date=models.DateField()
    publish=models.ForeignKey(Publish)
    authors=models.ManyToManyField("Author")

    def __str__(self):
        return self.name

数据库迁徙

修改过数据库,应执行迁徙,以应用改动:

python manage.py makemigrations 
python manage.py migrate

在PyCharm视图右侧DataBase添加sqlite3类型驱动,将生成的db.sqlit3数据库拖到右侧窗口,可视图查看数据库。

MySQL相关

MySQL 安装 | 菜鸟教程 (runoob.com)

安装记录(win7):

根据教程安装mysql(在MySQL官网下载了8.1.0zip Archive安装包):
1、在进入bin目录
cd C:\web\mysql-8.0.11\bin
2、初始化数据库
mysqld --initialize --console
3、执行完成后,会输出root用户的初始默认密码

...2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password
 is generated for root@localhost: APWCY5ws&hjQ...

4、输入以下安装命令
mysqld install
5、启动mysql
net start mysql

登录MySQL

登录本机的 MySQL 数据库

mysql -u root -p
提示输入密码,此时输入初始化时生成的密码。
初次登陆后,需要修改密码才可以进行其它操作。
登录成功后你将会看到 Welcome to the MySQL monitor... 的提示语。然后命令提示符会一直以 mysql> 加一个闪烁的光标等待命令的输入, 输入 exit 或 quit 退出登录。
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

遇到的问题

1、找不到VCRUNTIME140_1.dll

在初始化数据库:mysqld --initialize --console 时,弹出错误

Latest supported Visual C++ Redistributable downloads | Microsoft Learn 在官网下载最新VC Red..安装,解决了问题。VCRUNTIME140_1.dll在系统中其实存在,不过时间是2010年的,可能是版本旧了。
无法启动此程序,因为计算机中丢失VCRUNTIME140_1.dll。尝试重新安装该程序一解决问题。_悟世君子的博客-CSDN博客 问题是参考这篇文章解决的。

2、ini文件创建

安装过程需要创建一个ini文件。但电脑默认创建记事本文件,要想通过修改文件名后缀来改变文件类型,需要在 工具-文件夹选项-查看-去掉“隐藏已知文件的扩展名”的勾选。

操作

1、启动与关闭

Windows下

mysqld --console  或  net start mysql  #启动服务
mysqladmin -uroot shudown  或  net stop mysql #关闭服务

2、查看已创建的数据库

use <数据库名称>; # 进入某个数据库
show table; desc <表的名称> # 查看数据库中某个表
posted @   Bruce_JRZ  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示