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实现控制台输入密码的方法
May 29 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python实现截屏的函数
Jul 26 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
python 按不同维度求和,最值,均值的实例
Jun 28 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
Dec 03 Python
python编写微信公众号首图思路详解
Dec 13 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
Python中的 enumerate和zip详情
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
整合了前面的PHP数据库连接类~~做成一个分页类!
2006/11/25 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
教你学会使用Python正则表达式
2017/09/07 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
django 外键创建注意事项说明
2020/05/20 Python
Python基于template实现字符串替换
2020/11/27 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
Java后台生成图片的完整步骤
2021/08/04 Java/Android