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中的__init__ 、__new__、__call__小结
Apr 25 Python
python爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
为python设置socket代理的方法
Jan 14 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
Python实现二维有序数组查找的方法
Apr 27 Python
Python科学画图代码分享
Nov 29 Python
Python实现基本数据结构中队列的操作方法示例
Dec 04 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
Apr 23 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
Python数组拼接np.concatenate实现过程
Apr 18 Python
python 19个值得学习的编程技巧
Aug 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使用exec shell命令注入的方法讲解
2013/11/12 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
php实现插入排序
2015/03/29 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
axios学习教程全攻略
2017/03/26 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
webpack打包多页面的方法
2018/11/30 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
Python实现二维数组输出为图片
2018/04/03 Python
Django学习之文件上传与下载
2019/10/06 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
django的autoreload机制实现
2020/06/03 Python
Keras实现DenseNet结构操作
2020/07/06 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
公司企业表扬信
2014/01/11 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
美容院营销方案
2014/03/05 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
电视节目策划方案
2014/05/16 职场文书
党员公开承诺书内容
2014/05/20 职场文书
德育标兵事迹材料
2014/08/24 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python