首页 > 数据库 >十四、MySQL与Django之Model基础

十四、MySQL与Django之Model基础

时间:2024-02-11 21:12:41浏览次数:32  
标签:models 数据库 MySQL db Django mysql 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 <表的名称> # 查看数据库中某个表

标签:models,数据库,MySQL,db,Django,mysql,Model
From: https://www.cnblogs.com/zhlforhe/p/18013525

相关文章

  • 十三、Django Admin
    DjangoAdmin是django项目数据库的一个后台管理工具一、注册models项目中,应用创建之后,应用文件夹就有一个admin.py文件。在admin.py中注册需要在admin后台管理的modelsfromdjango.contribimportadminfromwebimportmodelsadmin.site.register(models.Host)admin.site.......
  • 十二、Django视图函数和模版相关
    视图相关HTTPRequest对象:属性:path函数:get_full_path()HTTPResponse对象:render()render_to_response()locals():局部变量redirect()重定向例子:用户登录成功后跳转deflogin(request):...#判断登录成功后,跳转到indexreturnrender(request,"index.html"......
  • 十、Django静态文件
    django网络相应基础:1、配置url路由在urls.py中urlpatterns添加路径fromdjango.conf.urlsimporturlfromdjango.contribimportadminfromapp01importviewsurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^index.html$',views.index),......
  • 十一、Django url控制系统
    urlpatterns=[url(正则表达式,views视图函数,参数,别名),]匹配1、完全匹配urlpatterns=[url(r'^admin/',admin.site.urls),url(r'^showtime/',views.showtime),url(r'^blog/',include('blog.urls')),url(r'^logi......
  • 九、Django环境搭建(基于anaconda环境)
    Django特点:具有完整的封装,开发者可以高效率的开发项目,Django将大部分的功能进行了封装,开发者只需要调用即可,如此,大大的缩短了开发的时间,同时也因为太多封装导致开发灵活度和项目的运行效率不足。通常在工作中,开发者可以使用Django快速的搭建项目,然后基于项目进行个别部分的效率优......
  • Elasticsearch实现Mysql的Like效果
    在Mysql数据库中,模糊搜索通常使用LIKE关键字。然而,随着数据量的不断增加,Mysql在处理模糊搜索时可能面临性能瓶颈。因此,引入Elasticsearch作为搜索引擎,以提高搜索性能和用户体验成为一种合理的选择。1、客户的诉求在ES中,影响搜索结果的因素多种多样,包括分词器、Match搜索、Term搜......
  • Flink CDC引起的Mysql元数据锁
    记一次FlinkCDC引起的Mysql元数据锁事故,总结经验教训。后续在编写FlinkCDC任务时,要处理好异常,避免产生长时间的元数据锁。同时出现生产问题时要及时排查,不能抱有侥幸心理。1、事件经过某天上午,收到系统的告警信息,告警提示:同步Mysql的某张表数据到Elasticsearch异常,提示连不......
  • 一次打通FlinkCDC同步Mysql数据
    业务痛点离开了业务谈技术都是耍流氓。我们来聊聊基于业务的痛点,衍生出来的多种数据同步方案。业务中常见的需要数据同步的场景1、多个库的表合并到一张表。不同的业务线或者微服务在不同的数据库里开发,但是此时有些报表需要将多个库的类似的数据合并后做查询统计。或者,某些历......
  • Ubuntu服务器使用 Daphne + Nginx + supervisor部署Django项目
    视频:https://www.bilibili.com/video/BV1e6421G7uM/?vd_source=36191bed2c30378060ff2efe6831b331Django从3.0版开始加入对ASGI的支持,使Django开始具有异步功能。截止目前的5.0版,对异步支持逐步也越来越好,相信在未来的版本中异步将会支持的更加完善。所以说,我们也需要适时的......
  • MySQL表结构及数据对比工具:MySQL Utilities
    简介MySQLUtilities是一组基于python语言编写的python库的命令行实用工具集,依赖于python2.6。该工具提供了MySQL数据库运维工程中常用的一些工具,诸如克隆、复制、比较、差异、导出、导入、安装、配置、索引、磁盘查看等等。Linux下安装yuminstallmysql-utilities.noarch......