移动端企业网站模板毕业设计网站模板下载
移动端企业网站模板,毕业设计网站模板下载,平阳门户网站建设,学雷锋 做美德少年网站笔记为自我总结整理的学习笔记#xff0c;若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 Django——连接mysql数据库 连接MySQL数据库… 笔记为自我总结整理的学习笔记若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 Django——连接mysql数据库 连接MySQL数据库1.安装MySQL驱动程序2.创建数据库3.配置settings.py文件4.django操作表django操作表语句与mysql语句的关系创建表修改表插入数据删除数据查询数据更新数据 5.迁移数据库报错解决 连接MySQL数据库
ORMObject-Relational Mapping是一种编程技术它允许开发者使用面向对象的方式来操作数据库而不必直接编写SQL语句。在Django中ORM是通过Django自带的django.db.models模块来实现的。
创建、修改、删除数据库中的表【无法创建数据库】操作表中的数据
1.安装MySQL驱动程序
首先确保你已经安装了适用于Python的MySQL驱动程序。可以使用pip命令来安装例如 pip install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple 2.创建数据库
需要在mysql中完成
3.配置settings.py文件
打开你的Django项目中的settings.py文件找到DATABASES设置部分并进行如下配置
DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: your_database_name,USER: your_mysql_username,PASSWORD: your_mysql_password,HOST: localhost,PORT: 3306,}
}确保将your_database_name、your_mysql_username和your_mysql_password替换为你的MySQL数据库的名称、用户名和密码。
4.django操作表
django操作表语句与mysql语句的关系
在Django中操作表的语句与直接在MySQL中执行的SQL语句有着密切的关系。Django的ORMObject-Relational Mapping提供了一种Pythonic的方式来操作数据库它将Python代码翻译成对应的SQL语句并执行这些SQL语句以实现数据库操作。
下面是一些常见的数据库操作以及它们在Django ORM中的对应方式和在MySQL中的原生SQL语句
创建表
Django ORM
# 在models.py中定义模型
class UserInfo(models.Model):
name models.CharField(max_length64)
password models.CharField(max_length128)
age models.IntegerField()MySQL原生SQL
CREATE TABLE application01_userinfo (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(64),
password VARCHAR(128),
age INT使用Django的管理命令manage.py来执行数据库迁移操作将模型映射到实际的数据库表。在命令行中执行以下命令
python manage.py makemigrations # 生成数据库迁移文件
python manage.py migrate # 应用数据库迁移修改表
新增一个列 两种选择 1 立即提供一次性默认值将在该列具有null值的所有现有行上设置 2 退出在models.py中添加一个默认值或允许为空
# 添加默认值
salary models.IntegerField(default5000)
# 允许为空
salary models.IntegerField(nullTrue, blankTrue)插入数据
# 原生sql语句insert into application01_userinfo(name, password, age) VALUES (quanquan, 123, 18)
# UserInfo.objects.create(namename, passwordpassword, ageage)def register(request):# POST方式if request.method POST:# 处理表单提交name request.POST.get(name, )password request.POST.get(password, )age request.POST.get(age)# 构造上下文数据context {name: name,password: password,age: age,}# 往数据库插入数据UserInfo.objects.create(namename, passwordpassword, ageage)# 渲染模板并返回响应return render(request, result.html, context)else:# 显示表单页面return render(request, register.html)register.html
!DOCTYPE html
html
headtitle输入信息/title
/head
bodyh2请输入您的信息/h2form methodpost action/register/
!-- {% csrf_token %} 是 Django 模板标记用于防止跨站请求伪造CSRF攻击。--
!-- Django 要求所有 POST 的表单都要包含这个标记以确保安全性。--{% csrf_token %}label forname姓名/labelinput typetext idname namenamebrbrlabel forpassword密码/labelinput typetext idpassword namepasswordbrbrlabel forage年龄/labelinput typetext idage nameagebrbrinput typesubmit value提交/form
/body
/htmlresult.html
!-- result.html --
!DOCTYPE html
html
headtitle提交结果/title
/head
bodyh2提交结果/h2p您提交的信息如下/pp姓名{{ name }}/pp密码{{ password }}/pp年龄{{ age }}/p
/body
/html删除数据
# 删除数据
UserInfo.objects.filter(id1).delete()
UserInfo.objects.all().delete()查询数据
# 查询数据
data_list UserInfo.objects.all()# data_list [行对象行对象...行对象] QuerySet类型print(data_list)
# QuerySet [UserInfo: UserInfo object (3), UserInfo: UserInfo object (4)]for obj in data_list:print(obj.name,obj.password,obj.age)
# 圈圈 123456 20
# 圈圈1 123456 11更新数据
# 更新 id 为 1 的记录的 name 和 age 字段
UserInfo.objects.filter(id1).update(namenew_name, age30)Django的ORM会将我们的Python代码翻译成对应的SQL语句并执行这些SQL语句以实现数据库操作。这种方式简化了数据库操作的复杂性同时也提高了代码的可读性和可维护性。
5.迁移数据库
使用Django的管理命令manage.py来执行数据库迁移操作将模型映射到实际的数据库表。在命令行中执行以下命令
python manage.py makemigrations # 生成数据库迁移文件
python manage.py migrate # 应用数据库迁移Django 就会根据这个模型创建相应的 MySQL 表。假设你的应用名为 application01模型名为userinfo那么在 MySQL 数据库中就会生成一个名为 application01_userinfo的表
报错解决
报错django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26) 原因django与mysql版本不兼容 解决方式 1.升级mysql版本SELECT VERSION() 我的版本是5.5.40有点麻烦不想升级 2.降低django版本需要先搜一下版本兼容情况 pip uninstall django pip install django2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88545.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!