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 相关文章推荐
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
浅析Python装饰器以及装饰器模式
May 28 Python
python矩阵转换为一维数组的实例
Jun 05 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
Python 打印中文字符的三种方法
Aug 14 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
Python简易版图书管理系统
Aug 12 Python
python输出pdf文档的实例
Feb 13 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
python3+PyQt5+Qt Designer实现界面可视化
Jun 10 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 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
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
php cli配置文件问题分析
2015/10/15 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
python操作xml文件详细介绍
2014/06/09 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
python读取图片任意范围区域
2019/01/23 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
python根据多个文件名批量查找文件
2019/08/13 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
高中地理教学反思
2014/01/29 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
2015暑假假期总结
2015/07/13 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python