当我们开始一个新的应用的时候

django-admin.py startapp app01

接下来的两个步骤如果已经设置好了mysql就可以忽略直接进入正题
1.在 settings.py 中找到 INSTALLED_APPS 这一项,添加上自己应用的名字

INSTALLED_APPS = ('app01',               # 添加此项
)

2.# 在与 settings.py 同级目录下的 init.py 中引入模块和进行配置

import pymysql
pymysql.version_info = (1, 4, 0, "final", 0)
pymysql.install_as_MySQLdb()

创建模型

在生成的app01的文件内找到models.py这个文件添加自己的表

class Book(models.Model):id = models.AutoField(primary_key=True) # id 会自动创建,可以手动写入title = models.CharField(max_length=32) # 书籍名称price = models.DecimalField(max_digits=5, decimal_places=2) # 书籍价格publish = models.CharField(max_length=32) # 出版社名称pub_date = models.DateField() # 出版时间

在终端运行

$ python3 manage.py migrate   # 创建表结构
$ python3 manage.py makemigrations app01  # 让 Django 知道我们在我们的模型有一些变更
$ python3 manage.py migrate app01   # 创建表结构

个人踩坑

当时数据库在设置的时候选择错误,但是已经在终端运行了创建表结构的语句,出现了django.db.utils.InternalError: (1051, “Unknown table‘xxx’’”)的错误
这里可以完美解决

数据库操作

规则交互
在app01/views.py: 文件代码:

from django.contrib import admin
from django.urls import path
from . import viewsurlpatterns = [path('add_book/', views.add_book),
]

添加方法
app01/views.py: 文件代码:

class Book(models.Model):from app01 import models
# Create your views here.def add_book(request):books = models.Book.objects.create(title="如来神掌",price=200,publish="功夫出版社",pub_date="2010-10-10") print(books, type(books)) # Book object (18) return HttpResponse("<p>数据添加成功!</p>")

个人踩坑

如果是新打开的应用,会提示Class "xxx" has no 'objects' member的报错提醒

完美解决

数据库对表的变更操作

最简单的是使用mysqlbench进行操作了,但是要记得进行同步,

我对我的一张表进行操作

python3 manage.py makemigrations cookie

进行变更

1是对这个进行变更

python3 manage.py migrate

Django数据库交互相关推荐

  1. django 数据库交互2

    打开django shell python manage.py shell 输入命令 >>> from myapp import * >>> MySite.obje ...

  2. 【转】Django 数据库的操作

    2019独角兽企业重金招聘Python工程师标准>>> Django 紧紧地遵循这种 MVC 模式,可以称得上是一种 MVC 框架.以下是 Django 中 M.V 和 C 各自的含 ...

  3. Django-- (三) Django数据库操作

    1.Django数据库 Django 非常适合构建数据库驱动型网站,它提供了简单而强大的工具(ORM),易于使用 Python 执行数据库查询. 2.ORM介绍 Object Relational M ...

  4. Java豆瓣电影爬虫——减少与数据库交互实现批量插入

    节前一个误操作把mysql中record表和movie表都清空了,显然我是没有做什么mysql备份的.所以,索性我把所有的表数据都清空的,一夜回到解放前-- 项目地址:https://github.c ...

  5. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

  6. 帆软报表调用mysql存储过程_FineReport单行与数据库交互的方法

    FineReport单行与数据库交互的方法 1.   问题描述 我们在做一张报表填报的时候经常会遇到需要在一行进行添加动作,将该行数据直接与数据库交互,执行存储过程过程.我们可以通过每一行增加帆软&q ...

  7. 竞赛报名 | AI时代数据库交互怎么玩?首届中文NL2SQL挑战赛开战

    也许用不了多久,人们就会看到全新的数据库交互方式. 不一定是专业的SQL语言开发者,也不用局限于传统的条件筛选,交互很简单,说说话,就可以随心所欲的调用所需数据,甚至完成更复杂的"逻辑&qu ...

  8. Django从理论到实战(part31)--Django数据库查询操作

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: Django数据库查询操作 查找是数据库操作中一个非常重要的技术,查询一般就是使用filter.exclude以及get三个 ...

  9. FineReport单行与数据库交互的方法

    1.   问题描述 我们在做一张报表填报的时候经常会遇到需要在一行进行添加动作,将该行数据直接与数据库交互,执行存储过程过程.我们可以通过每一行增加帆软"插入"按钮实现插入动作,并 ...

最新文章

  1. 10.1引用数据类型的转换
  2. 转:图解C#的值类型,引用类型,栈,堆,ref,out
  3. IntelliJ IDEA 推荐设置讲解
  4. 用 Identity Server 4 (JWKS 端点和 RS256 算法) 来保护 Python web api
  5. 【黑客帝国数字雨屏保】基于Win32的黑客帝国数字雨屏幕保护程序(附VS工程代码文件和可执行文件)
  6. dj鲜生-17-改造激活用户的代码-解决安全隐患
  7. Thrift实现C#调用Java开发步骤详解
  8. ROS入门(八) make_plan的Server连接
  9. Python+selenium+eclipse执行web自动化(四)控件处理
  10. [每日一氵] Harris代码
  11. ode45 matlab 出错,Matlab中ode45求解出错
  12. java构建树状结构工具类
  13. Gentoo Linux KDE 下使用IBUS的问题
  14. 服务端返回中文乱码的分析和解决办法
  15. 陌上人如玉,公子世无双
  16. 【D3D11游戏编程】学习笔记十八:模板缓冲区的使用、镜子的实现
  17. is not eligible for getting processed by all BeanPostProcessors
  18. 并查集(究竟有几个祖先?)
  19. MacOS安装Homebrew与Oh-My-Zsh
  20. Linux系统离线安装包及其依赖的下载安装

热门文章

  1. hive 插入数据映射到hbase_年薪50万都难招的大数据工程师,凭什么?
  2. 洛谷 P2371 [国家集训队]墨墨的等式
  3. 利用FFC软排线为Thinkpad X200s加装mSATA接口的SSD固态硬盘
  4. 【华为机试真题Java】火星文计算
  5. 基于反馈的Query改写:你说过的,我才最懂
  6. mybatis中<choose>标签的用法
  7. java计算机毕业设计小太阳游乐场管理源码+lw文档+系统+数据库
  8. 三国志IX反○○连合的条件
  9. java反射--PropertyDescriptor类:(属性描述器)、Introspector类
  10. 梅科尔工作室-赵赟-鸿蒙笔记4