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 20 Python
python地震数据可视化详解
Jun 18 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
django2笔记之路由path语法的实现
Jul 17 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
Python类中方法getitem和getattr详解
Aug 30 Python
python实现单链表的方法示例
Sep 03 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
Python的控制结构之For、While、If循环问题
Jun 30 Python
python编程项目中线上问题排查与解决
Nov 01 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
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
完善的jquery处理机制
2016/02/21 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
python调用百度语音识别api
2018/08/30 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
Python 元组操作总结
2019/09/18 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
公司总经理岗位职责
2014/03/15 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
工作失职检讨书
2015/01/26 职场文书
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle