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登录QQ邮箱发信的实现代码
Feb 10 Python
Python Deque 模块使用详解
Jul 04 Python
在Python程序中进行文件读取和写入操作的教程
Apr 28 Python
python使用socket进行简单网络连接的方法
Apr 29 Python
简单讲解Python中的数字类型及基本的数学计算
Mar 11 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
python和shell获取文本内容的方法
Jun 05 Python
Python实现基于POS算法的区块链
Aug 07 Python
django框架自定义模板标签(template tag)操作示例
Jun 24 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
python获取栅格点和面值的实现
Mar 10 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 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截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
jquery自定义表格样式
2015/11/23 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
jsTree使用记录实例
2016/12/01 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
对django views中 request, response的常用操作详解
2019/07/17 Python
pandas数据处理进阶详解
2019/10/11 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
主要领导对照检查材料
2014/08/26 职场文书
2014年管理工作总结
2014/11/22 职场文书
党员转正党支部意见
2015/06/02 职场文书
军训结束新闻稿
2015/07/17 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python
详解Java实践之建造者模式
2021/06/18 Java/Android
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python