当前位置: 首页 > news >正文

招标网会员共享武汉seo技术

招标网会员共享,武汉seo技术,网站建设公司行情,可以做微信推送的网站笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【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数据库

ORM(Object-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_nameyour_mysql_usernameyour_mysql_password替换为你的MySQL数据库的名称、用户名和密码。

4.django操作表

django操作表语句与mysql语句的关系

在Django中,操作表的语句与直接在MySQL中执行的SQL语句有着密切的关系。Django的ORM(Object-Relational Mapping)提供了一种Pythonic的方式来操作数据库,它将Python代码翻译成对应的SQL语句,并执行这些SQL语句以实现数据库操作。

下面是一些常见的数据库操作,以及它们在Django ORM中的对应方式和在MySQL中的原生SQL语句:

创建表

Django ORM:

# 在models.py中定义模型
class UserInfo(models.Model):
name = models.CharField(max_length=64)
password = models.CharField(max_length=128)
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(default=5000)
# 允许为空
salary = models.IntegerField(null=True, blank=True)

在这里插入图片描述

插入数据

# 原生sql语句:insert into application01_userinfo(name, password, age) VALUES ('quanquan', '123', 18)
# UserInfo.objects.create(name=name, password=password, age=age)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(name=name, password=password, age=age)# 渲染模板并返回响应return render(request, 'result.html', context)else:# 显示表单页面return render(request, 'register.html')

register.html

<!DOCTYPE html>
<html>
<head><title>输入信息</title>
</head>
<body><h2>请输入您的信息</h2><form method="post" action="/register/">
<!--        {% csrf_token %} 是 Django 模板标记,用于防止跨站请求伪造(CSRF)攻击。-->
<!--        Django 要求所有 POST 的表单都要包含这个标记,以确保安全性。-->{% csrf_token %}<label for="name">姓名:</label><input type="text" id="name" name="name"><br><br><label for="password">密码:</label><input type="text" id="password" name="password"><br><br><label for="age">年龄:</label><input type="text" id="age" name="age"><br><br><input type="submit" value="提交"></form>
</body>
</html>

result.html

<!-- result.html -->
<!DOCTYPE html>
<html>
<head><title>提交结果</title>
</head>
<body><h2>提交结果</h2><p>您提交的信息如下:</p><p>姓名:{{ name }}</p><p>密码:{{ password }}</p><p>年龄:{{ age }}</p>
</body>
</html>

在这里插入图片描述
在这里插入图片描述

删除数据

# 删除数据
UserInfo.objects.filter(id=1).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(id=1).update(name='new_name', age=30)

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 django==2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

http://www.khdw.cn/news/7911.html

相关文章:

  • 能用网站做微信小程序站长工具怎么用
  • 企业建设H5响应式网站的5大好处武汉seo网站管理
  • 怎么制作视频网站百度seo排名优化排行
  • 网站搜索怎么做的长沙大型网站建设公司
  • 网络营销策略的方法seo全国最好的公司
  • 网络运维培训大概多少钱锦州seo推广
  • 网站建设每年需要交多少钱定制网站建设电话
  • 东莞网站建设 鞋材厂软文有哪些发布平台
  • 建设营销型网站流程百度推广如何办理
  • 个人建网站教程常州seo外包公司
  • 供应链管理系统论文seo短视频网页入口引流网站
  • 免费网站中文源码下载接广告推广的平台
  • 广州必去的景点排名seo关键词排名怎么提升
  • 东莞企业网东莞排名优化团队
  • 房地产建筑设计公司什么叫seo网络推广
  • 东莞回收网站设计中文域名注册
  • 哈尔滨网络推广经理招聘搜索引擎优化的重要性
  • php做网站还是linux搜狗seo快速排名公司
  • 网站权重6了该则么做优化方案推广图片大全
  • 成都网站建设工作室仿站定制模板建站
  • 做婚礼效果图的网站有哪些全球网站流量排名查询
  • 泰州手机网站制作深圳百度seo代理
  • 高端网站设计新鸿儒信息发布
  • 建站行业现状市场营销四大分析方法
  • [8dvd]flash网站源文件 flash整站源码线上宣传方式有哪些
  • 建站推荐网站百度指数如何分析数据
  • 服务器网站日志腾讯网qq网站
  • 网页设计作品收获与思考网站关键词优化排名怎么做
  • 在pc端网站基础上做移动端做推广怎么做
  • 郑州网站建设技术支持最新国际军事动态