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常见文件操作的函数示例代码
Nov 15 Python
跟老齐学Python之用Python计算
Sep 12 Python
python动态网页批量爬取
Feb 14 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
如何使用Django Admin管理后台导入CSV
Nov 06 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 Python
python利用while求100内的整数和方式
Nov 07 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常用函数(php下操作数据库必备)
2010/09/12 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
django之自定义软删除Model的方法
2019/08/14 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
python调用摄像头的示例代码
2020/09/28 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
J2EE包括哪些技术
2016/11/25 面试题
初三家长会邀请函
2014/01/18 职场文书
优秀教师先进事迹
2014/01/22 职场文书
毕业自我评价
2014/02/05 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
OpenCV实现常见的四种图像几何变换
2022/04/01 Python