- 博客(81)
- 问答 (1)
- 收藏
- 关注
原创 Django中跨域请求的解决方法————has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ header
使用`django-cors-headers`库来配置Django以启用CORS,避免跨域问题
2023-10-18 20:43:41
860
2
原创 django——在html中的应用特定知识的使用方法和语法——7/6
在视图函数中,通过将参数添加到上下文字典中,然后将上下文对象传递给模板渲染函数,从而使参数在模板中可用。:通过URL将参数作为查询字符串或路径参数传递给视图函数,然后在模板中通过模板标签进行访问。在URL配置中定义参数的名称,然后在视图函数中获取参数的值。:通过表单提交将参数传递给视图函数,然后在视图函数中处理表单数据并将参数传递给模板。在这个例子中,用户通过表单输入用户名和年龄,然后在表单提交后,视图函数接收表单数据并将参数传递给模板进行显示。是通过URL路径参数传递给视图函数,并在模板中显示。
2023-07-06 16:55:33
272
原创 django——数据库语法——7/6
Django提供了高级的ORM(对象关系映射)层,它抽象了底层数据库的细节,并提供了一组直观且易于使用的数据库操作方法。以上只是一些常用的Django数据库操作示例。Django的ORM提供了丰富的查询API和数据库操作方法,以满足各种需求。
2023-07-06 16:42:44
162
原创 linux_考察——7/1
在当前用户家目录中查找名为haha.txt的文件,可以使用命令:find ~ -name haha.txt。要过滤文件内容中包含"ERROR"的行,可以使用命令:grep “ERROR” 文件名。要查看占用CPU使用率最高的进程,可以使用命令:top 或者 htop。要查看一个文件的末尾50行,可以使用命令:tail -n 50 文件名。Linux中,要隐藏文件,可以在文件或目录名前加上句点(.)。要查看某进程号的详细信息,可以使用命令:ps -p 进程号。如何过滤文件内容中包含"ERROR"的行?
2023-07-01 14:29:58
100
原创 Python_爬虫——协程中task与future的区别——六月二十三
总结:Task是对协程的封装,用于调度和执行协程任务;Future是一个未来对象,用于接收和处理异步操作的结果。在实际使用中,Task更常见,它提供了更多的功能和便利性,但在某些情况下,使用Future可以更灵活地处理异步操作的结果。在协程中,Task和Future是两个重要的概念,它们用于管理和跟踪异步操作的状态和结果。通过创建Task对象,我们可以在事件循环中调度和执行协程任务。创建了一个Future对象,然后在协程中设置了Future的结果,最后通过。函数是一个协程,它会返回一个结果。
2023-06-23 11:05:12
323
原创 Python——爬虫之网页请求HTTP响应头和HTTP请求头——六月十八
这是一个HTTP响应头和请求头的示例,提供了有关服务器响应的详细信息。
2023-06-18 11:00:07
1442
原创 MySql——常用窗口函数应用与解释——六月十七
通过使用窗口函数,可以在结果集中计算每个行的某种统计值或分析值,并且不会对结果集进行聚合操作。通过窗口函数,我们可以轻松地在每个部门内进行统计和分析,并且不会破坏原始的行级数据。窗口函数为MySQL提供了更灵活和强大的数据分析和统计能力,可以在单个查询中处理复杂的分析任务,而无需使用多个子查询或临时表。是一个窗口函数,它计算每个部门的平均工资,并按照工资降序排列。可以看到,每个部门的平均工资被计算并在每行中显示,不会对结果集进行聚合操作。其中,窗口函数可以是专用窗口函数或聚合函数。
2023-06-17 11:59:14
102
原创 MySql——json数据存储的好处——六月十七
使用JSON类型,开发者可以将非结构化的数据以原样存储在数据库中,而无需提前设计和调整表结构。此外,MySQL还提供了许多针对JSON数据的函数和操作符,使开发者可以方便地查询和操作JSON数据。需要注意的是,MySQL 8.0版本对JSON类型的性能进行了改进,解决了之前版本中JSON日志性能的瓶颈问题。使用JSON类型可以存储这些不同结构的日志信息,而无需为每种日志类型创建不同的表。使用JSON类型,MySQL提供了一种在关系型数据库中灵活存储和查询非结构化数据的方式,为开发者带来了更多便捷和灵活性。
2023-06-17 11:35:02
1470
原创 MySql——过程的创建和使用——六月十六
过程(又称存储过程)是事先编译好存储在数据库中的一组 SQL 的集合,调用过程可以简化应用程序开发人员的工作,减少与数据库服务器之间的通信,对于提升数据操作的性能也是有帮助的。对于调用过程的用户来说,过程并没有暴露数据表的细节,而且执行过程比一条条的执行一组 SQL 要快得多。:在定义过程时,因为可能需要书写多条 SQL,而分隔这些 SQL 需要使用分号作为分隔符,如果这个时候,仍然用分号表示整段代码结束,那么定义过程的 SQL 就会出现错误,所以上面我们用。请注意,存储过程中的参数和变量名前面需要使用。
2023-06-16 22:30:50
68
原创 MySql——函数的创建以及使用——六月十六
MySQL 中的函数跟 Python 中的函数没有太多的差异,因为函数都是用来封装功能上相对独立且会被重复使用的代码的。如果非要找出一些差别来,那么 MySQL 中的函数是可以执行 SQL 语句的。
2023-06-16 22:09:59
695
原创 MySql——视图作用与应用——六月十六
视图是关系型数据库中将一组查询指令构成的结果集组合成可查询的数据表的对象。简单的说,视图就是虚拟的表,但与数据表不同的是,数据表是一种实体结构,而视图是一种虚拟结构,你也可以将视图理解为保存在数据库中被赋予名字的 SQL 语句。
2023-06-16 22:00:00
96
原创 MySQL——select_type详解——六月十五
这个查询中,外层的 SELECT 语句是主要查询,它使用了一个子查询来获取符合条件的客户 ID,然后根据这些客户 ID 查询相关的订单信息。这样,我们就通过使用子查询来获取部门名称为 “HR” 的部门ID,并将其用作外部查询的条件,成功地筛选出了部门为 “HR” 的所有员工信息。这种类比帮助理解不同类型的查询在查询过程中的作用和关系,就像在制作菜品时选择和组合不同的食材和调料一样。,然后在外部查询中选择所需的列,我们成功地筛选出了类别为 “Bakery” 的产品的名称和价格。
2023-06-15 20:02:47
3235
原创 Python_继承threading实现自己的线程类——六月十四
方法获取锁,然后判断电影票的数量是否大于0。如果大于0,则模拟售票过程,将电影票数量减1,并打印出售票信息。否则,打印出票已售罄的信息,释放锁并结束线程。方法等待售票员线程执行完成,确保主线程等待所有售票员线程执行完毕后再继续执行。类并重写其中的方法,我们可以自定义线程类,并根据具体需求编写线程的执行逻辑。类来创建自定义的线程类,并重写其中的方法。下面是一个形象的例子,用来模拟电影院售票系统的并发处理。方法,并在执行过程中进行售票和打印。,表示电影票的数量,初始为100。类创建线程时,可以通过继承。
2023-06-14 20:54:58
246
原创 Python_文件不关闭的后果——建议用with语句自动管理文件的关闭——六月十四
文件锁定:某些操作系统(如Windows)在文件打开状态下可能会将文件锁定,防止其他程序对该文件进行操作。如果不关闭文件,那么这些文件句柄将一直保持打开状态,最终会导致系统资源的浪费。内存占用增加:如果打开的文件比较大,而且没有关闭文件,那么文件的内容将会一直保存在内存中,导致内存占用增加,可能会影响程序的性能和稳定性。如果不关闭文件,缓冲区中的数据可能无法完全写入文件,导致数据丢失或不完整。综上所述,为了确保程序的健壮性和资源的正常释放,建议在使用完文件后及时关闭文件。方法来关闭文件,或者使用。
2023-06-14 19:54:57
1485
原创 Python_使用 `@property` 包装器来实现属性的 getter 和 setter 方法——实现对属性的安全访问。——六月十四
这个方法被定义为属性的 getter 方法,用于获取属性的值。同时,我们可以为属性定义一个对应的 setter 方法,用于设置属性的值。我们可以在 setter 方法中添加任意的额外逻辑操作或数据验证,确保属性的值符合预期,并提供更安全和方便的属性访问方式。包装器,我们将这两个属性的访问方式定义为 getter 方法,并在对应的 setter 方法中进行数据验证。包装器,我们可以将属性访问的控制权交给 getter 和 setter 方法,从而实现对属性的安全访问。在访问属性时,我们可以直接使用。
2023-06-14 19:31:03
204
原创 Python_限制类实例可以绑定的属性——__slots__——六月十四
可以有效地减少实例的内存消耗,因为它告诉解释器不要为实例的所有属性创建字典,而是使用固定大小的数组来存储这些属性。是一种用于限制类实例属性的机制,它可以提高内存效率并约束对象属性的动态性。在设计类时,如果你希望限制实例可以绑定的属性,可以考虑使用。变量并指定允许绑定的属性名称,可以限制实例只能拥有指定的属性,而不能动态地绑定其他属性。,我们限制了实例可以绑定的属性,提高了内存效率并约束了对象属性的动态性。是一个特殊的类变量,用于限制类实例可以绑定的属性。变量,那么子类的实例可以绑定子类和父类中定义的属性。
2023-06-14 19:06:16
114
原创 Python_考察——range&xrange有什么区别?
返回的是一个生成器对象,它按需生成每个整数值,不会一次性生成整个序列,因此占用的内存较小。返回的是生成器对象,它在迭代过程中按需生成每个整数值,因此在处理大型序列时,相比于。类似,即返回一个可迭代的序列对象。因此,在 Python 3.x 中,可以直接使用。会一次性生成并返回整个列表对象,占用的内存空间较大。总的来说,Python 3.x 版本中移除了。,用于生成整数序列。返回一个列表对象,而。返回一个生成器对象。函数来生成整数序列。
2023-06-08 09:07:27
203
原创 考察——请简单描述消息队列缓存数据库
消息队列将消息发送者和接收者解耦,发送者将消息发送到队列中,而接收者从队列中获取消息进行处理。缓存数据库(缓存)是一种用于存储临时数据的高速数据存储系统。它可以将经常访问的数据缓存到内存中,以加快数据的读取速度。缓存数据库通常采用键值对的形式存储数据,并且具备高速的读写能力。在实际应用中,消息队列和缓存数据库可以结合使用。例如,可以将数据存储到缓存数据库中,并通过消息队列将数据变更事件发送给其他服务或应用程序,实现数据的同步和更新。消息队列和缓存数据库是两种不同的技术,它们用于不同的场景和目的。
2023-06-06 12:43:06
529
原创 MySQL_考察——请简单描述mysql的语句
以上只是MySQL语句的简单描述,实际使用中还有更多的语法和选项可供使用。MySQL支持丰富的功能和扩展,例如索引、联结(JOIN)、聚合函数、事务等,使得可以进行更复杂和高效的数据操作和管理。MySQL是一种常用的关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据的管理和操作。
2023-06-06 12:39:27
91
原创 Django_考察——请简单描述djandgo的中间件
中间件的使用使得开发者可以将通用的功能和处理逻辑从视图函数中解耦,提高代码的可维护性和复用性。Django中间件的基本原理是通过定义中间件类来拦截请求和响应,并在特定的时机进行处理。在请求处理过程中,每个中间件都有机会对请求进行处理或对响应进行处理,可以按照需要对中间件的顺序进行调整。Django中间件(Middleware)是一种特殊的组件,它位于Django请求/响应处理过程中的特定位置,并。**,以添加额外的功能或进行一些操作,如身份验证、日志记录、性能监测、请求转发等。中间件的执行顺序由其在。
2023-06-06 12:37:58
65
原创 Python_考察——请简单描述python 继承和多重继承
子类在定义时将父类作为参数传递给类名后的括号中,这样子类就继承了父类的所有属性和方法。子类可以直接访问父类的属性和方法,也可以重写(覆盖)父类的方法以实现自己的逻辑。多重继承允许子类同时获得多个父类的特性,并可以在子类中使用这些特性。但需要注意,多重继承可能会引起命名冲突和复杂性增加的问题,需要谨慎使用。继承和多重继承是面向对象编程的重要概念,它们提供了代码重用和扩展的机制,使得代码更加模块化、可维护和可扩展。继承通过创建一个新的类来实现,新的类继承了父类的属性和方法,并且可以在其基础上进行扩展或修改。
2023-06-06 12:30:59
134
原创 Python_考察——请简单描述python 生成器
生成器还可以用于表示无限序列,因为它们不需要在内存中保存所有值。需要注意的是,生成器只能遍历一次,一旦遍历结束,就需要重新创建一个新的生成器对象。此外,生成器可以与其他迭代器和序列操作一起使用,例如。它们的语法更简洁,可以在一行代码中创建生成器。总而言之,生成器是一种强大的工具,可以在需要迭代大量数据时提供高效的解决方案,每次调用生成器函数时,它会返回一个生成器对象,可以通过。通过生成器,可以按需生成元素,从而节省内存和提高性能。生成器函数:定义一个函数,并在函数体内使用。循环逐个获取生成器中的值。
2023-06-06 11:32:03
52
原创 Python_考察——请简单描述 定义list风险
在Python中,列表是可变对象,当将一个列表赋值给另一个变量时,实际上是将引用传递给了新变量。:如果需要频繁地在列表的任意位置插入或删除元素,列表可能不是最佳的选择。由于列表是动态数组,插入和删除元素时需要移动其他元素,导致操作的时间复杂度为O(n),其中n是列表的长度。:在访问列表元素时,如果使用超出列表索引范围的下标,会导致IndexError异常。总之,定义列表时需要注意潜在的风险,考虑到数据规模、内存消耗、操作效率和边界情况的处理,以选择适当的数据结构来满足需求。频繁的元素插入和删除。
2023-06-06 11:29:15
89
原创 Python_考察——请简单描述python 深拷贝与浅拷贝和其区别
对于原始对象中的可变子对象(如列表或字典),浅拷贝只是创建了一个引用,而不是复制其内容。因此,如果修改了原始对象中的可变子对象,浅拷贝的副本也会受到影响。深拷贝(Deep Copy)是创建一个新对象,并递归地复制原始对象及其所有可变子对象的内容。深拷贝将创建原始对象及其所有子对象的独立副本,因此对其中一个对象的修改不会影响另一个对象。当使用浅拷贝时,可变子对象的修改会影响原始对象和浅拷贝对象,而深拷贝则会创建独立的副本,不受影响。这展示了浅拷贝和深拷贝在处理可变子对象时的区别。而使用深拷贝时,修改。
2023-06-06 11:27:37
78
原创 Python_考察——简单描述下python的垃圾回收机制
确保不再使用的对象能够被及时清理和回收,从而减少内存泄漏和资源浪费的问题。这种自动的垃圾回收机制减轻了开发人员对内存管理的负担,使得编写Python代码更加方便和高效。会通过追踪对象之间的引用关系,标记出所有可达对象,然后。,并将其占用的资源回收,以便其他对象可以使用。当一个对象变为不可达时,Python会将其。除了引用计数,Python还使用了一种称为。时,说明没有任何变量引用该对象,即。当这个对象被其他变量引用时,其。Python的垃圾回收机制会。来处理循环引用的情况。跟踪和管理对象的引用。
2023-06-05 15:17:34
59
原创 Python_考察——python的装饰器怎么理解?举例说明应用场景
这个装饰器示例展示了在函数执行前后插入额外的代码逻辑,这在日志记录、性能计时、权限验证等场景中非常有用。装饰器使得我们能够以一种简洁、可复用的方式扩展函数的功能,而无需修改原始函数的定义。,可以在被装饰的函数或类的执行前后插入额外的代码,以实现功能的增强。下,通过在函数或类的定义前添加装饰器来实现对其功能的扩展或修改。,它接受一个函数或类作为参数,并返回一个新的函数或类。它接受一个函数作为参数,并返回一个新的函数。函数在被装饰的函数执行前后会打印相应的日志信息。装饰器函数,并将返回的。
2023-06-05 15:13:51
72
原创 Java_静态方法特点——举例说明
在上面的例子中,尽管创建的是子类的实例,但由于调用的是静态方法,编译器根据编译时类型(ParentClass)确定了调用的是父类的静态方法。这些例子展示了静态方法的特点和用法
2023-06-05 13:57:45
90
原创 Java_继承成员变量和继承方法的区别
继承成员变量和继承方法的区别在于继承成员变量是通过隐藏和添加成员变量来实现的,而继承方法则是通过重写和调用父类方法来实现的。继承成员变量可以让子类直接访问和使用父类的成员变量,而继承方法则是让子类可以继承父类的行为,并在需要时可以重写和调用父类的方法。继承成员变量和继承方法在继承过程中存在一些区别。
2023-06-04 14:43:48
286
原创 Java_向上转型和向下转型——子父类型转换
向上转型和向下转型在面向对象编程中具有重要的作用,可以实现多态性和灵活的对象处理。向上转型提供了代码的通用性和可扩展性,而向下转型使得我们能够访问子类特有的方法和属性。但需要注意避免转型错误,避免在不安全的情况下进行向下转型,以避免异常的发生。
2023-06-04 14:31:37
223
原创 Java_方法重写要求
Java_方法重写要求1. 方法名称和参数列表必须与父类被重写的方法相同。2. 返回值类型不能大于父类被重写的方法的返回值类型(除非是基本数据类型或void,必须相同)。3. 访问权限不能小于父类被重写的方法的访问权限(public > protected > 缺省 > private)。4. 子类方法抛出的异常不能大于父类被重写方法的异常。
2023-06-04 11:47:57
394
原创 UML图基本知识
UML(Unified Modeling Language)类图是一种用于。它是一种标准化的建模语言,被广泛用于软件开发和系统设计。阅读和理解 UML 类图可以帮助你了解系统中各个类之间的关系、类的属性和方法等信息。类名:表示类的名称。这些符号通常出现在类的特性(字段和属性)和方法之前,用于表示它们的访问权限级别。通过这些符号,可以清楚地了解成员的可访问性。
2023-06-04 11:36:07
135
原创 Python_窗口设计——出入栈控制控件的前进后退
使用Stack的方式对GUI组件进行入栈和出栈操作是一种常见且有效的方式,用于控制界面的显示、隐藏、前进和后退逻辑。:由于组件入栈时并没有被销毁,而是被隐藏起来,因此可以保留组件的状态,包括用户输入的数据、滚动位置等,方便用户返回时继续操作。:通过入栈和出栈操作,可以自由控制组件的显示和隐藏,实现复杂的导航逻辑,如前进、后退、跳转等。:通过入栈和出栈控制组件的生命周期,可以更好地管理资源的分配和释放,避免资源泄露和浪费。这种方式可以实现基于栈的导航和组件管理,使得用户界面的交互更加灵活和可控。
2023-06-04 11:16:40
135
原创 命令行_nvidia-smi——查看电脑cuda版本
在命令行中输入 nvcc --version,按回车键执行。这将显示安装在系统上的CUDA版本。
2023-06-03 22:45:05
1742
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅