django连接mysql数据库及建表操作实例详解


Posted in Python onDecember 10, 2019

本文实例讲述了django连接mysql数据库及建表操作。分享给大家供大家参考,具体如下:

django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西

import pymysql
pymysql.install_as_MySQLdb()

找到settIngs里面的database设置如下

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 's22', #连接的库名,这个要事先存在
    'HOST':"127.0.0.1",
    'PORT':3306,
    'USER':"root",
    'PASSWORD':"123", #这里要用引号
  }
}

下面是静态文件路径的修改

#静态文件位置比如用来存放 bootstrap样式,jquery-3.3.1.min.js
STATIC_URL = '/static/'
STATICFILES_DIRS=[
  os.path.join(BASE_DIR,"static"),
  os.path.join(BASE_DIR,"static99"),
]

然后创建一个应用app01,在pycharm的terminal下面

我的project是test1

G:\study\day18\test1> python manage.py startapp app01

告诉django有哪些app,settIngs.py里面设置,加入到最后一行,注意:如果是在创建project的同时写了Application name,它会自动加入到这里面

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'app01.apps.App01Config', #你在命令行创建app时要注意添加
]

在app01下的models.py中写类

它操作的对应关系是:

ORM 对象关系映射
类        表
对象      记录
属性      字段

在app01的modles.py里面写入,创建类

from django.db import models
# Create your models here.
class Book(models.Model):
  # 定义一个自增的id主键
  id = models.AutoField(primary_key=True)
  # 定义一个最大长度为32的varchar字段
  title = models.CharField(max_length=32)

在terminal上面执行下面两条命令

python manage.py makemigrations #检测app/models.py文件的改动
python manage.py migrate     #把上面的改动翻译成sql语句,然后去数据库中执行

好了,我们登陆mysql查看结果

mysql> show tables;
+----------------------------+
| Tables_in_s22       |
+----------------------------+
| app01_book         |
| auth_group         |
| auth_group_permissions   |
| auth_permission      |
| auth_user         |
| auth_user_groups      |
| auth_user_user_permissions |
| django_admin_log      |
| django_content_type    |
| django_migrations     |
| django_session       |
+----------------------------+
11 rows in set (0.00 sec)

如果要删除app01_book表,modles.py里面的相关联东西就可以了,之后执行

models.py

#class Book(models.Model):
#   # 定义一个自增的id主键
#   id = models.AutoField(primary_key=True)
#   # 定义一个最大长度为32的varchar字段
#   title = models.CharField(max_length=32)

接着执行

python manage.py makemigrations
python manage.py migrate

在 app01的migrations下面放的是改动的记录,不能登陆到数据库上面直接操作,否则这些记录会变乱

django连接mysql数据库及建表操作实例详解

如果想在pycharm里面直观的操作如下图

django连接mysql数据库及建表操作实例详解

1 点击侧栏的 database
2 点击+ 选择mysql
3 点击download下载相关的驱动
4 库   5 用户名    6 密码      ---》点击test connection测试数据库的连通性

具体操作如下

django连接mysql数据库及建表操作实例详解

说明:
1 点击要操作的表
2 点击+ 表示要加入记录,- 表示删除
3 点击 ⬆同步道数据库
4 刷新,查看新的记录

总结:diango操作mysql数据库的准备工作

1 用sql语句建个数据库,也就是命令登陆MySQL 使用create s22

2 告诉django去哪里连接数据库   在settIngs.py中设置

3 告诉django使用pymysql连接MySQL数据库  project/__init__.py

4 在app/models.py文件中,根据语法,创建类

5执行两个命令:makemigrations   migrate

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python实现绘制树枝简单示例
Jul 24 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
python多进程和多线程究竟谁更快(详解)
May 29 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
Django组件之cookie与session的使用方法
Jan 10 Python
元组列表字典(莫烦python基础)
Apr 03 Python
对Python3中列表乘以某一个数的示例详解
Jul 20 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
用 Python 元类的特性实现 ORM 框架
May 19 Python
python cv2图像质量压缩的算法示例
Jun 04 Python
python 通过视频url获取视频的宽高方式
Dec 10 #Python
Python imageio读取视频并进行编解码详解
Dec 10 #Python
Python中Subprocess的不同函数解析
Dec 10 #Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 #Python
python 视频逐帧保存为图片的完整实例
Dec 10 #Python
python 实现视频 图像帧提取
Dec 10 #Python
python-视频分帧&多帧合成视频实例
Dec 10 #Python
You might like
php 在线导入mysql大数据程序
2015/06/11 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
实例讲解PHP表单
2020/06/10 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
python修改操作系统时间的方法
2015/05/18 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
python调用webservice接口的实现
2019/07/12 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
如何通过python计算圆周率PI
2020/11/11 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
电力培训心得体会
2014/09/02 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
英文道歉信
2015/01/20 职场文书
告知书格式
2015/07/01 职场文书
消费者投诉书范文
2015/07/02 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android
基于Python实现西西成语接龙小助手
2022/08/05 Golang