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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
python 截取 取出一部分的字符串方法
Mar 01 Python
python非递归全排列实现方法
Apr 10 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
Jun 20 Python
详解Django之auth模块(用户认证)
Apr 17 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
python获取本机所有IP地址的方法
Dec 26 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
Jun 14 Python
Python装饰器如何实现修复过程解析
Sep 05 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
python des,aes,rsa加解密的实现
Jan 16 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 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
2019十大人气国漫
2020/03/13 国漫
Home Coffee Roasting
2021/03/03 咖啡文化
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
在PHP中使用与Perl兼容的正则表达式
2006/11/26 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
python的re模块应用实例
2014/09/26 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
python之语音识别speech模块
2020/09/09 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
三八妇女节活动主持词
2014/03/17 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏