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的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
在Python中使用sort()方法进行排序的简单教程
May 21 Python
Python对象转JSON字符串的方法
Apr 27 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
Django后台管理系统的图文使用教学
Jan 20 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
python程序的组织结构详解
Dec 06 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 Python
python数字图像处理之对比度与亮度调整示例
Jun 28 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支持页面回退的两种方法[转]
2007/02/14 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
php计算整个目录大小的方法
2015/06/01 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
Python脚本实现网卡流量监控
2015/02/14 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
pytorch逐元素比较tensor大小实例
2020/01/03 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
解决django FileFIELD的编码问题
2020/03/30 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
电子技术专业中专生的自我评价
2013/12/17 职场文书
考试违纪检讨书
2014/02/02 职场文书
学历公证委托书
2014/04/09 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
自我推荐信格式模板
2015/03/24 职场文书
检讨书格式范文
2015/05/07 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python