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中的JSON模块
Apr 08 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
PyQt5 QListWidget选择多项并返回的实例
Jun 17 Python
使用python搭建服务器并实现Android端与之通信的方法
Jun 28 Python
python实现windows倒计时锁屏功能
Jul 30 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
python 链接sqlserver 写接口实例
Mar 11 Python
浅谈Python 参数与变量
Jun 20 Python
Python实现天气查询软件
Jun 07 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安全编程之加密功能
2006/10/09 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
Prototype String对象 学习
2009/07/19 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
three.js 如何制作魔方
2020/07/31 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
简单谈谈Python中的闭包
2016/11/30 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
简单英文演讲稿
2014/01/01 职场文书
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技