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 获取网页编码方式实现代码
Mar 11 Python
Python中int()函数的用法浅析
Oct 17 Python
Python时间戳使用和相互转换详解
Dec 11 Python
python实现彩票系统
Jun 28 Python
Python面向对象之类的定义与继承用法示例
Jan 14 Python
python语言基本语句用法总结
Jun 11 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
Python3.9又更新了:dict内置新功能
Feb 28 Python
python字典与json转换的方法总结
Dec 28 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 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聊天室实现方法(附源码)
2016/01/05 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
往光标所在位置插入值的js代码
2013/09/22 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Django REST为文件属性输出完整URL的方法
2017/12/18 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
python单例模式实例解析
2018/08/28 Python
Django 用户认证组件使用详解
2019/07/23 Python
python3正则模块re的使用方法详解
2020/02/11 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
Python绘制动态水球图过程详解
2020/06/03 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
python接口自动化框架实战
2020/12/23 Python
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
县优秀教师事迹材料
2014/01/31 职场文书
欢迎横幅标语
2014/06/17 职场文书
公司活动总结怎么写
2014/06/25 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
Go中的条件语句Switch示例详解
2021/08/23 Golang