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

永久免费的网站地址网络广告策划书案例

永久免费的网站地址,网络广告策划书案例,网站建设云尚网络,湘潭建设厅官方网站阅前先赞,养好习惯! 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings,连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改(更新)数据: 获取数据 1、OR…

阅前先赞,养好习惯!

目录

1、ORM框架介绍

选择建议

2、安装mysqlclient

3、创建数据库

4、修改settings,连接数据库

5、对数据库进行操作

创建表

删除表

添加数据

删除数据

修改(更新)数据:

获取数据


1、ORM框架介绍

        之前讲过MySQL连接pymysql,PyMySQL 是一个纯 Python 实现的 MySQL 客户端库,用于直接与 MySQL 数据库交互。通过 PyMySQL,可以发送原生 SQL 查询语句,并获取查询结果。但是大家也能看到,PyMySQL的一些语句其实和MySQL是差不多的,并且代码比较繁琐,切换数据库也很麻烦,要修改大量代码。

现在来介绍另一种方法:ORM

Django 的 ORM(Object-Relational Mapping)是一种将数据库表和 Python 类关联起来的工具,允许开发者通过操作 Python 对象来与数据库交互,而不需要直接编写 SQL 查询。

两者区别:

特性Django ORMPyMySQL
开发效率高:无需手写 SQL,直接用 Python 操作数据库。低:需要手写 SQL,代码量多,容易出错。
代码可读性高:简洁、结构化,贴近业务逻辑。中:需要理解 SQL 和 Python 代码的混合逻辑。
数据库独立性强:支持多种数据库(MySQL、PostgreSQL、SQLite 等),切换数据库只需更改配置,无需改动代码。弱:依赖 MySQL,切换数据库需要修改大量 SQL。
学习成本低:只需学习 Django 的模型和查询 API。高:需要熟悉 SQL 语法和数据库操作。
性能中:抽象层带来开销,复杂查询可能性能较低。高:直接发送 SQL,性能更高。
功能扩展高:内置丰富功能,如分页、外键、查询优化等。低:需要自己实现复杂功能。
错误处理自动处理,减少手动处理的错误风险。完全依赖开发者,错误处理工作量大。

选择建议

  • 使用 Django ORM

    • 开发 Django 项目时,优先选择 ORM。它能大幅提升开发效率,特别是对于中小型项目。
    • 如果项目大部分操作是增删改查,ORM 是首选。
  • 使用 PyMySQL

    • 如果需要处理复杂的 SQL 查询或高性能场景,可以结合 PyMySQL 使用。例如,在 Django 项目中,使用 ORM 完成大部分逻辑,少数复杂场景下直接用 PyMySQL 或 raw SQL 查询。
    • 非 Django 项目,且对性能要求极高时,选择 PyMySQL。

        ORM是一个框架,可以通过PyMySQL工具来操作MySQL,而在Django开发中,一般使用mysqlclient工具而并非PySQL,有两个原因,一个是Django 官方文档中明确推荐使用 mysqlclient,因为它和 Django 的 ORM 紧密集成,兼容性经过了长期验证;还有就是mysqlclient的性能要好一点。

Orm将数据库基本语句弄得更简单,将简单的语句翻译成数据库原生代码。

2、安装mysqlclient

打开控制台输入:

pip install mysqlclient

安装成功界面:

3、创建数据库

由于mysqlclient无法创建数据库,所以得我们自己创建,详细教程前文有说:

【全栈开发】----Mysql基本配置与使用-CSDN博客

进入到mysql>下,输入:

create database mydata default character set utf8;

并检查mydata是否已被创建

show databases;

4、修改settings,连接数据库

        打开settings文件,这里是默认的连接sqlite3,这也是一种数据库,我们要改成MySQL的,先把这段代码注释。

输入:

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',  #django连接mysql,还可以连oracle、sqlite3、postgresql等等'NAME': 'mydata',  #数据库名字'USER':'root',  #用户'PASSWORD':'612612',  #密码'HOST':'127.0.0.1',  #主机'PORT':'3306',  #端口}
}

注意!大家的数据库名称和密码可能与我不一样,修改一下即可

5、对数据库进行操作

创建表

在app的models文件中,每新建一个类,就是创建一张表,类需继承models类

class Department(models.Model):title = models.CharField(max_length=32)

例如上面的Department类就是创建了一张表,表中有title行,32位字符型

class UserInfo(models.Model):  #继承models类name = models.CharField(max_length=32)password = models.CharField(max_length=64)age = models.IntegerField()

UserInfo类定义了一个长度为32的字符串行name,长度为64的字符串行password,有符号情况下最多十位的整型age行。

类名代替表名,字段名代表列名

上面的UserInfo类其实就相当于MySQL中的:

create table app01_userinfo(id bigint auto_increment primary key,name varchar(32),password varchar(64),age int,
)

运行命令如下:

python manage.py makemigrations
python manage.py migrate

在Pycharm终端依次输入运行即可

注意前提是下载了mysqlclient库,并且app已注册

检查表是否创建成功:

desc app01_userinfo;

注意!!!虽然我们在models中创建的是UserInfo类,但mysqlclient处理后真正的表名是

应用名+_+类(类全小写)

所以此处表名是    app01_userinfo

创建表后还能再添加字段吗?当然是可以的

在类中再添加一个字段,输入:

size = models.IntegerField()

运行后提示:

1、要是选择1的话,点击Enter,会提示让您输入一个默认值,然后那一列都将是那个默认值。

2、要是选2的话,并且没有任何操作,数据库中将不会显示新加的数据。

3、选2后,在源代码中添加默认值,将会出现数据。

size = models.IntegerField(default=2)

也可以将数据设置成空:

size = models.IntegerField(null=True,blank=True)

删除表

删除表很简单,只需要将类注释或者直接删掉,再输入这两行命令刷新即可

python manage.py makemigrations
python manage.py migrate

添加数据

新建一个url,用来测试是否添加数据

def orm(requests):# 测试orm操作表中的数据return HttpResponse("成功")

增加数据命令:

UserInfo.objects.create(name="谭谈",password="1234",age=18)

启动项目,发现数据确实是添加进去了

大家可以自己再多添加几行数据,便于后面的修改与删除

删除数据

删除满足特定条件的数据:

Department.objects.filter(id=2).delete()

确实是删除了

删除全部数据:

这就不演示了,大家可以自己玩玩

UserInfo.objects.all().delete()

修改(更新)数据:

UserInfo.objects.filter(id=1).update(name="有的兄弟")

确实是修改了

获取数据

使用.all()方法获取数据

data_list = UserInfo.objects.all()
print(data_list)

可以先在控制台打印看看

发现拿到的是一个QuerySet对象,包含三个数据,每个数据后面的数字代表ID值

可以通过迭代器和点属性来获取具体的值:

    for data in data_list:print(data.id,data.name,data.password,id.age)

发现确实是被正确获取并打印了:

获取到的QuerySet可以通过索引和其他方法取值,常见的有以下三种,我就不一一介绍了,大家可以自己玩玩:

.first() vs .get() vs [0]

方法返回值异常处理使用场景
.first()第一条记录或 None不抛出异常不确定是否有数据时更安全
.get()符合条件的唯一对象抛出 DoesNotExist 异常确定条件只会返回一条数据时使用
[0]第一条记录或抛出 IndexError抛出 IndexError 异常确定有数据且只需第一条时使用

本次分享就到这儿了

下一篇博客更新用户管理综合案例!!!

感谢您的三连!!!

http://www.ds6.com.cn/news/39984.html

相关文章:

  • 网页设计好看的网站必应搜索国际版
  • 网站建设四段合一google推广专员招聘
  • 网站开发公司简介百度图片查找
  • 成都网站开发外包公司百度关键词点击
  • 丰收路网站建设全自动引流推广软件app
  • 答题小程序制作广州网站优化
  • 怎么做qq可信任网站电脑优化是什么意思
  • 网站开发属于软件开发吗专业软文平台
  • dw做网站的导航栏seo详细教程
  • 选择网站建设公司应该注意什么推广普通话图片
  • 做网站软件是什么行业免费广告投放平台
  • 深圳网站建设是什么网坛最新排名
  • 花生壳做网站需要备案网站建站
  • 公关做的好的网站网站收录工具
  • 嘉兴企业做网站电子商务网站推广策略
  • 城阳做网站的百度搜索竞价
  • 贵州网站建设公司有哪些长沙seo
  • 高明网站开发在线客服系统
  • ui设计就业方向有哪些?西安seo网站管理
  • 服务器可以吧网站做跳转吗正规微商免费推广软件
  • 响应式网站制作方法seo教程排名第一
  • 网站建设的一些销售技巧软文营销是什么意思
  • 网站页面开发流程必应搜索引擎
  • 对政府网站建设提意见如何在网上做销售推广
  • js 网站首页下拉广告黑帽seo优化推广
  • 北京网站建设公司内江热狗网站排名优化外包
  • 有公众号要不要做网站各大网站的网址
  • 普通电脑可以做网站服务器吗影视网站怎么优化关键词排名
  • 做网站能赚钱专业网站制作
  • 闸北企业网站建设sem投放