自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

这是一个c++热爱者的博客哟

这是一个c++热爱者的博客哟

  • 博客(268)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++11 并发指南九(综合运用 C++11 多线程下生产者消费者模型详解)

前面八章介绍了 C++11 并发编程的基础(抱歉哈,第五章-第八章还在草稿中),本文将综合运用 C++11中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——,并给出完整的解决方案。

2023-01-29 13:07:15 4099

原创 C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)

前面三篇文章《C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)》、《C++11 并发指南六( 类型详解二 std::atomic )》、《C++11 并发指南六(atomic 类型详解三 std::atomic (续))》都是采用 C++ 的方式介绍原子对象,本节我会给大家介绍 C++11 原子操作中 C 风格的 API。

2023-01-29 13:04:50 4344 1

原创 C++多线程07:thread_local

thread-local storage 和static(或者说global) 存储很类似,每一个线程都将拥有一份这个数据的拷贝,对象的生命周期从线程开始时开始(对于全局变量),或者首先分配空间。当线程退出的时候对象析构;一般在声明时赋值,在本thread中只执行一次。当用于类成员变量时,必须是static的。C++11 thread_local用法 - 知乎 (zhihu.com)存储类说明符 - cppreference.com。

2023-01-20 15:47:40 2921

原创 mupdf流程

这个函数的核心目的是管理PDF处理过程中的资源环境,确保资源在处理期间的正确分配和释放。它通过使用资源栈来暂存当前的资源环境,处理新的资源字典,并在处理完成后恢复之前的资源环境。在任何情况下(无论处理成功还是失败)都能正确管理资源,从而避免资源泄漏或状态不一致的现象。

2024-09-18 00:16:44 839

原创 Mupdf 图像处理

好的,让我们来组合所有这些图像处理方式的选项,以便更好地理解它们的用法。

2024-09-17 22:48:26 751

原创 mozjpeg

执行完脚本后,你将会获得通用的 mozjpeg 库文件和头文件,存放在。这个脚本执行的步骤同之前的脚本,只不过这次使用了。

2024-09-09 17:24:11 211

原创 vcpkg子包路径批量获取

获取vcpkg 子包的路径,并拼接为set(CMAKE_PREFIX_PATH “拼接路径” )

2024-09-08 12:55:50 254

原创 为libpng不同架构创建构建目录、编译、安装以及合并库文件的所有步骤。

这个脚本将处理从构建到合并的所有步骤,确保 libpng 的 x86_64 和 arm64 架构版本被正确编译和合并。目录下生成包含通用库的。执行完之后,脚本会在。

2024-09-07 18:39:31 245

原创 CMake 为 macOS 平台生成适用于两个不同架构的 Zlib 库,

【代码】CMake 为 macOS 平台生成适用于两个不同架构的 Zlib 库,

2024-09-07 17:58:18 159

原创 mupdf提取pdf图像

【代码】mupdf提取pdf图像。

2024-08-31 12:13:16 723

原创 对mozjpeg中的函数名进行替换

获取到函数列表到指定文件后,删去simd相关的内容。进行第一次替换,替换所有的函数名称。第二次替换是替换def目录导出的函数。

2024-08-30 19:35:16 312

原创 cjpeg简化简化简化

【代码】cjpeg简化简化简化。

2024-08-29 00:44:32 102

原创 C++泛型编程指南之函数模板优先级匹配

完美匹配 (1):参数类型与函数参数类型完全相同,或者参数是左值引用且指向相同类型的对象。匹配需要微调 (2):数组变量衰减为指针,或添加const限定符以匹配参数类型。类型提升匹配 (3):小整型和浮点型的自动提升。标准转换匹配 (4):标准转换或派生类到基类的转换。用户定义的转换匹配 (5):通过构造函数或转换运算符进行的转换。省略号匹配 (6):省略号参数可以匹配多种类型,但对于某些类型可能有限制。

2024-08-10 23:17:12 821

原创 C++ 泛型编程指南之函数模板

在C++中,模板是一种强大的机制,它允许你编写泛型代码,即可以处理多种数据类型的代码。通过使用模板,你可以编写灵活且可重用的函数和类,而不需要为每种数据类型都重复相同的逻辑。在C++17之前,模板参数类型`T`通常需要满足可复制的要求,这是因为模板中的函数如果返回`T`类型的值,那么这个值就需要能够被复制。但是,有时候我们可能想要使用不可复制的类型作为模板参数,例如`std::unique_ptr`这样的独占所有权智能指针。为了支持不可复制类型的使用,C++17引入了结构化绑定和`std::optio

2024-08-10 17:48:19 1182

原创 简化cjpeg

jpeg-一种影像有损压缩标准方法后缀jpg/jpegJPEG(Joint Photographic Experts Group联合图像专家小组)是一种针对照片影像而广泛使用的有损压缩标准方法,面向连续色调静止图像的一种压缩标准。1992年发布了JPEG的标准而在1994年获得了工S010918-1的认定。和相同图像质量的其它常用文件格式(C如GIF,TIFF,PCX)相比,JPEG是目前静态图像中压缩比最高的。JPEG格式是最常用的图像文件格式,后缀名为.jpg或.jPeg。JF工F一JPEG文件交换

2024-08-09 09:54:27 196

原创 Libharu实现子集化和字体内嵌流程

展开 HPDF_LoadTTFontFromFile//完成初始化动作展开 HPDF_FileReader_New// 该函数创建并初始化一个用于读取文件的流对象。展开 LoadTTFontFromStream//增加 字体定义到pdf内部的字体定义列表,这一步,和之后的 HPDF_GetFont内的 HPDF_GetFontDef 有关展开 HPDF_TTFontDef_Load展开 LoadFontData。

2024-08-08 08:46:25 753

原创 C++泛型编程指南==》模板重载决议

重载解析仅应用于命名函数的调用。通过函数指针或指向成员函数的指针进行的调用不适用重载解析。类函数宏不支持重载,因此不需要进行重载解析。重载解析的目标是确定最佳匹配的函数,以便于正确地调用。完美匹配 (1):参数类型与函数参数类型完全相同,或者参数是左值引用且指向相同类型的对象。匹配需要微调 (2):数组变量衰减为指针,或添加const限定符以匹配参数类型。类型提升匹配 (3):小整型和浮点型的自动提升。标准转换匹配 (4):标准转换或派生类到基类的转换。用户定义的转换匹配 (5)

2024-08-08 01:17:37 540

原创 现代泛型编程指南==》函数模板

当参数按引用声明时,所有实参必须具有相同的类型。当参数按值声明时,允许进行简单的转换,但转换后的类型必须匹配。如果实参的类型不兼容,或者不能通过简单的转换匹配,那么调用将导致编译错误。方法1:适用于你想要显式指定返回类型的情况。方法2:适用于你想让编译器推导返回类型的情况。方法3:适用于你想自动选择两个类型之间的公共类型作为返回类型的情况。方法二的局限性[[#方法二的局限性]]方法三的注意事项使用b < a?a : b更加稳健,因为它不依赖于运算符的存在。

2024-08-07 00:59:53 845

原创 python 模块 包 库 框架

将测试代码放在块内是一个快速简便的方法,适用于小型模块或简单的测试。使用单元测试框架(如unittest或pytest)可以更好地组织和管理测试代码,适用于大型项目或复杂的测试场景。希望这些信息对你有所帮助!如果你有任何具体问题或需要进一步的帮助,请随时提问。

2024-08-04 11:48:07 800

原创 python 容器

在 Python 中,序列类型(如列表、元组和字符串)支持一系列通用的操作。下面是一些常见的序列操作,这些操作通常适用于大多数序列类型,无论是可变类型还是不可变类型:下面是针对这些操作的一些示例代码:请注意,对于可变序列(如列表),还有一些额外的方法可用,如 , , , , , , 等。而对于不可变序列(如元组和字符串),则无法直接修改其内容,但可以通过切片和其他操作来创建新的序列。您提到的这两个方法是序列类型(如列表和字符串)中常用的,用于获取元素的位置和计数。下面是这两个方法的具体说明及示例:以下是

2024-08-04 00:46:10 794

原创 python函数

关键字参数:通过指定参数名和对应的值来传递参数。位置参数:按照函数定义的顺序传递参数。混合使用:可以同时使用位置参数和关键字参数。使用关键字参数的一个主要优点是可以提高代码的可读性,特别是在函数有许多参数的情况下。你还可以使用关键字参数来更改默认参数值而不需要修改所有参数。def create_user(username, email, age=18): # 年龄设为默认值18'age': age# 使用关键字参数覆盖默认值。

2024-08-03 20:49:19 899

原创 cjpeg配置

【代码】cjpeg配置。

2024-07-22 23:58:15 108

原创 libharu维基页面

在Windows环境中,如果将Haru构建为共享库,错误处理函数的定义需要使用__stdcall调用约定。LibHaru 定义了一系列错误代码来指示可能遇到的各种错误情况。这些错误代码覆盖了从内存分配问题、文件I/O错误、无效的参数设置到不支持的功能或格式等。了解这些错误代码及其含义对于调试和解决使用 LibHaru 库时遇到的问题至关重要。如果遇到未定义的错误代码,可能需要查阅库的文档或源代码以获取更多信息。在LibHaru中,绘制矢量图形涉及到设置图形状态、构造路径、以及对路径进行填充或描边的操作。

2024-06-16 19:39:15 747

原创 pdf分割为bmp

【代码】pdf分割为bmp。

2024-06-10 18:06:10 177

原创 解析ttf为文字

【代码】解析ttf为文字。

2024-06-05 00:40:46 193

原创 编译 libpng zlib mozjpeg libjpeg-turbo 失败的解决方法

在使用vcpkg安装这些库之前,请确保你已经正确安装并配置了vcpkg。以下是在Windows环境下,使用vcpkg安装libpngzlibmozjpeg, 和的命令序列。这些命令假设你已经在命令行中进入了vcpkg的根目录。由于libpng依赖于zlib,vcpkg在安装libpng时会自动处理zlib的依赖关系。mozjpeg是一个JPEG库,提供更好的压缩效率。libjpeg-turbo是另一个JPEG库,以其高速度而闻名。

2024-06-01 21:49:49 412

原创 cjpeg

前一行通过函数指针调用错误管理器的重置函数,确保错误状态被清空。后一行则初始化输出目标,准备接收压缩后的数据。标志决定压缩的起始状态:如果是处理原始数据输入(即无须颜色转换或下采样的数据),则状态设为。函数来根据当前的压缩参数选择和初始化所有需要的压缩模块,这包括编码器、系数处理器等。方法,为压缩的第一遍处理做准备,这可能包括设置内部状态变量、初始化工作内存等。最终,该函数完成了JPEG压缩过程的初始化,使得应用程序可以通过调用如。计数器重置为0,表示从图像的第一行开始处理。只能在压缩开始状态被调用。

2024-05-29 01:03:43 556

原创 libjpeg_example.txt

******************** JPEG 压缩示例接口 ********************//******************** JPEG解压样本接口 ********************//* cinfo->err 实际上指向 my_error_mgr 结构,因此强制指针 */(void)jpeg_read_scanlines(cinfo, 缓冲区, 1);/* 步骤3:使用jpeg_read_header()读取文件参数 *//* 返回给调用者 */

2024-05-26 23:10:11 279

原创 3C++内存管理详解(三)

class Testpublic:Test() //构造函数:_a(0)cout

2024-04-07 22:43:02 865

原创 2C++类和对象(二)

/类体:由成员变量和成员函数组成 };//注意后面的分号其中class为定义类的关键字,className为类的名字,{}中为类的主体,注意定义结束时加上后面的分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量,类中的函数称为类的方法或者成员函数。1、声明和定义全部放在类体中。需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。2、声明放在头文件(.h)中,定义放在源文件(.cpp)中。注意:一般情况下,更期望采用第二种方式。

2024-04-07 22:42:31 1079

原创 1C++入门基础(一)

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代,计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此,C++是基于C语言而产生的,它既可以进行。

2024-04-07 22:41:54 744

原创 kylin v10 配置 rime 输入法

找到 ibus 首选项,选择 输入法 ————》 添加 ————》 中文 ——————》 rime .网上选择 一个 rime 方案(雾凇 rime)将文件全部复制到这个rime 文件夹下。

2024-02-20 16:44:07 406

原创 Linux Rootkit实验|0201 基本功能之Root后门

内核中的事情,真的是要细心。顺着FreeBuf的文章往下看时,这个地方少分配了一个尾零。事实上应该是另外注意,是:个人以为rootkit应该提供一个能够远程连接的root shell(对于内网的机器,用reverse shell是不是更好),并具备痕迹清理、自我删除甚至更强的反取证功能(另外,是否需要隐藏当前登录用户?

2024-02-03 10:59:16 883

原创 Linux Rootkit实验|0200 基本功能之阻止模块加载

感觉Linux kernel虽然是用C写的,但有很鲜明的面向对象的特点。尤其是在结构体中嵌入函数指针作为成员,几乎就是类+方法的翻版。带着这种背景观点去探索源码可能会好一些,你看到某些结构体,可以猜测它们会不会有对应的一些方法。从探索模块加载过程的旅程来看,阅读内核源码没有想象中的难,也并非枯燥,而是充满了乐趣,也许是因为带着问题去探索吧。我们注意到,上面的通知处理函数使用了锁机制。这是内核编程中经常需要注意的。

2024-02-03 10:57:59 1211

原创 Linux Rootkit实验|01 基于修改系统调用表的Hook

配合着源码在线阅览,边做边能查到内核代码的感觉非常棒。本次实验中的比第一次实验中的grep要方便许多。实验过程中深感自己学识浅薄,静水流深呐。一个朋友在FreeBuf文章下评论说:“写得不错。但获取sys_call_table的地址对hook这一大目标并没有起到多大作用,甚至是多余的。”后来他又说:“回复有所歧义,说不需要知道sys_call_table的地址是针对2.6以前的内核版本,之前的版本可以直接引用sys_call_table变量,多谢提醒!

2024-02-03 10:56:08 1085

原创 Linux Rootkit:内核 5.7+ 的新方法

我们无法轻松地将符号名称解析为内存地址,这意味着我们无法使用 ftrace 挂钩函数(回想一下,我们使用 ftrace 来注册当等于。,他们可以随心所欲地使用任何其他导出的内核函数。获取我们想要挂钩的函数的地址。这是一个非常简单的修复,但说明了一种在不破坏现有支持的情况下处理此类更改的好方法。尽管共享相同的名称,但存储库中实际上有两个略有不同的文件。值得注意的是,截至撰写本文时,可用于 Ubuntu 20.04 的最新内核是。当然,如果我们不是在内核 5.7+ 上进行编译,那么这些都不会触发,并且。

2024-02-03 10:55:20 870

原创 Fancy Bear 是一名伐木工人,没关系 - 深入了解 Drovorub 的内核组件

我认为这是一个广泛的、内核范围的决定,如果采取不同的做法,将会产生很多影响(如果您知道确切的原因,请告诉我!示例中所做的那样) - 尽管我将内核对象硬编码为可执行文件中的数组,但没有理由不能通过相反,这样就不会在文件系统上的任何地方留下内核模块的残余。可悲的是,这只是我的猜测。用户态进程的 PID 很可能作为附加数据的一部分传递给任何需要某种输出的命令(至少在我看来这是有意义的,但我在这里完全猜测)。在这篇文章中,我想介绍一下该内核模块使用的一些技术,以及它与我们在其他文章中已经介绍过的技术的关系。

2024-02-03 01:01:53 626

原创 9隐藏登录用户(无需接触磁盘即可修改文件内容)_Linux_Rootkit.md

通常,每个用户只有其中一个(尽管不一定),并且仅真正用于生成显示驱动程序(X、Wayland 等),或者如果您实际位于服务器上,则仅用于登录会话本身。如果我们得到匹配,那么我们可以继续分配一个内核缓冲区,调用真正的系统调用,并将填充的用户空间缓冲区复制到内核缓冲区中。在直接开始编写内核模块之前(此时,我仍然不确定如何在不覆盖此文件的情况下隐藏用户),我决定编写一个用户空间工具来解析此文件以掌握它的含义布局。(最后一个参数是一个偏移量,我们可以在上面看到它从(文件的开头)开始,并在每次读取时递增。

2024-02-03 00:57:29 1103

原创 8隐藏开放端口_Linux_Rootkit.md

完成上述所有内容的目的是为了说明了解如何构建这些模块所需的内核源代码的研究。源代码告诉我们,这个特定的结构是“套接字的网络层表示”——这听起来就像我们所追求的!并不是真正的文件,而是由内核中分配给不同 IO 操作(打开/关闭/读/写/等)的函数定义的。我们的钩子需要做的就是检查监听端口是否等于我们想要隐藏的端口,如果是则返回,如果不是则。这成为我们的目标,因为如果我们可以控制它,那么我们就可以控制(以及其他类似的)请注意,我们实际上并没有触及内核中的内部套接字表,因此连接的功能完全没有受到损害!

2024-02-03 00:53:52 878

原创 7隐藏进程_Linux_Rootkit.md

因此,我们需要想出一种方法来告诉我们的模块我们想要隐藏哪个 PID。一旦我们将内核模块的其余部分(Ftrace 等)放在一起,我们就可以构建它并尝试它。因此,如果我们隐藏带有我们想要保密的 PID 名称的目录,那么这些用户空间工具将不会注意到该进程的存在!希望您喜欢这个 - 它比平常短一点,但这只是因为这里没有太多新内容,只是我们已经介绍过的技术的巧妙组合。现在我们可以告诉 rootkit 我们想要隐藏哪个 PID,我们必须真正隐藏它!具有我们要隐藏的 PID 名称的文件或目录。),我们还可以隐藏进程!

2024-02-03 00:51:54 605

vcpkg 文档 vcpkg是一款免费的C/C++包管理器,用于获取和管理库 从1500多个开源库中进行选择,只需一步即可下载和

vcpkg是一款免费的C/C++包管理器,用于获取和管理库。从1500多个开源库中进行选择,只需一步即可下载和构建,或者添加您自己的私有库以简化构建过程。 由Microsoft C+团队和开源贡献者维护。 为什么选择vcpkg? ·有超过2200个开 便于使用普遍的只需一步即可下载并构建常用库。无需担心上游依赖项或版本冲突。使用vcpkg可与您首选的操作系统、构建系统、目标架构、IDE、编辑器和特命令行操作或在可与您的存储库共存的清单中声明依赖项。获得开发团续集成流程配合使用。库是从源代码构建的,并且可以进行配置。 队、文档和活跃社区的支持。可靠的为了所有人保持本地开发人员和C工/CD工作流程之间的一致性。保留您首选的库版无论您是小型开源项目的单人团队,还是具有复杂构建和安全需求的大型本。将您的依赖生态系统与团队的其他成员同步。 企业,都可以利用最新的vcpkg功能来满足您的工作流程。缓存二进制文件以加快使用速度,避免钻石依赖解析问题,为所有开发人员、C工机器和容器重现相同的构建。自带库或使用流行的公共库。利用现有的Visual Studio和Visual Studio Code集成。

2024-07-20

SELinux:为任何Linux环境带来世界级的安全性! SELinux为Linux/UNIX集成商、管理员和开发人员提供了最

SELinux:为任何Linux环境带来世界级的安全性! SELinux为Linux/UNIX集成商、管理员和开发人员提供了最先进的平台,用于构建和维护高度安全的解决方案。既然SELinux已经包含在Linux 2.6内核中,并且默认情况下在Fedora Core、Red Hat Enterprise Linux和其他主要发行版中提供,那么利用它的好处比以往任何时候都要容易。 SELinux by Example是在生产环境中使用SELinux的第一个完整的实践指南。由三位领先的SELinux研究人员和开发人员撰写,它阐明了使用SELinux的各个方面,从其架构和安全对象模型到其策略语言。这本书彻底解释了SELinux示例策略-包括强大的新参考策略-展示了如何快速地使它们适应您独特的环境。它还包含一个全面的SELinux策略语言参考,并涵盖了Fedora Core 5和即将推出的Red Hat Enterprise Linux版本5中令人兴奋的新功能。 ·彻底理解SELinux的访问控制和安全机制·使用SELinux从头开始构建安全系统·获得对内核资源的细粒度控制·为类型强制、角

2024-01-16

SELinux by Example

1.内核策略语言部分旨在作为内核策略语言语句和规则的参考,并附有来自参考策略源的支持示例。此外,政策 DB 第 32 版的所有语言更新都应包含在内。如需更详细的策略语言解释,推荐阅读《SELinux by Example》一书。 《SELinux by Example》是一本专为理解和实践Security-Enhanced Linux(SELinux)安全模型而编写的指南性书籍。SELinux是Linux内核中的一个强制访问控制(MAC)系统,用于增强操作系统的安全性。 这本书通常会深入浅出地介绍SELinux的基本概念、架构以及如何配置和管理SELinux策略。书中通过实例和实际应用场景来帮助读者掌握SELinux的工作原理,内容可能包括: 1. **SELinux基础知识**:介绍SELinux的历史背景、目标、基本术语及工作模式(如`enforcing`、`permissive`和`disabled`)。 2. **策略构建与管理**:详细阐述如何创建、安装、更新和调试SELinux策略模块,使用工具如`semodule`、`checkpolicy`、`audit2all

2024-01-16

SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SE

SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SELinux 社区。该笔记本的目标是成为有关 SELinux 的最新、最全面的书籍,涵盖 Linux 内核组件、用户空间库和工具、策略工具链以及策略本身。 SELinux Notebook 是免费提供的,欢迎并鼓励社区做出贡献! 为 SELinux Notebook 做出贡献 直接在 GitHub 上查看笔记本 SELinux Notebook 有多种不同的格式,包括可以直接在 GitHub 上查看的在线格式,一次查看一个部分,从以下链接开始: SELinux 笔记本 离线查看笔记本 虽然 SELinux Notebook 是一本不断更新的活书,但我们偶尔也会发布具有各种格式的预构建版本的新版本,这些版本可以下载和离线阅读。我们的发布页面包含有关每个版本以及预构建笔记本的更多信息: https://github.com/SELinuxProject/selinux-notebook/releases 构建您自己的 SELinux 笔记本 BUILD.md

2024-01-15

第四章套接字通信博客的有图案的版本

博客上传本地图片太麻烦了,直接整了个pdf,大家结合博客一起看吧

2023-11-01

python Django web 联通用户管理系统实训代码

类似于客户管理系统,实现对管理员账户 部门账户 用户账户 靓号账户 任务发布 的增删查改,实现导入导出excel数据,生成pdf, 上传图片媒体资源。用户登录期间,随机图片验证码验证,登录账号的Cookie,Session保存。在增删删改期间,实现了 Ajax 页面无刷新上传数据。 在浏览数据信息方面,实现了模块级别的分页查询,实现了 e-chart 的数据可视化。在存储数据方面实现了md5 加密存储数据。Django 优点 1. 高度集成化:Django包含了很多常用功能,如自动化ORM系统、Form系统、Cache系统、Routing、Middleware、Template系统等,这样就能够很方便的使用这些功能,不需要自己来实现这些底层的功能。 2. 自动化Admin管理站点:Django自带一个基于Web的Admin管理站点,无需自行开发,可快速完成对模型的管理。 3. 强调面向对象编程思想:Django强调对模型、视图、控制器的封装,让开发人员更关注业务开发本身而不是技术层面,使代码结构更清晰。 4. 安全性较高:Django带有一些内置安全性功能,如防止跨站脚本攻击、C

2023-06-16

python Django web 实训项目的实验报告

python Django web 实训项目的实验报告 类似于客户管理系统,实现对管理员账户 部门账户 用户账户 靓号账户 任务发布 的增删查改,实现导入导出excel数据,生成pdf, 上传图片媒体资源。用户登录期间,随机图片验证码验证,登录账号的Cookie,Session保存。在增删删改期间,实现了 Ajax 页面无刷新上传数据。 在浏览数据信息方面,实现了模块级别的分页查询,实现了 e-chart 的数据可视化。在存储数据方面实现了md5 加密存储数据。 静态文件存放在 pms/app1/static Html文件存放在 pms/app1/template 验证码模块 md5加密模块 分页模块 bootstrap模块 form 模块在 pms/app1/utils Models 文件存放在 pms/app1/ Form上传的图片文件 存放在 pms/app1/city ModelForm 上传的图片 存放在 pms/app1/media Xxx.py 文件存放在 pms/app1/views Django 优点 1. 高度集成化:Django包含了很多常用功能,如自动化OR

2023-06-16

《C++17 完全指南》

本书为《C++17 the complete guide》(第一版) by Nicolai M. Josuttis的个人中文翻译版, 仅供学习和交流使用 C++17是现代 C++编程中的下一个版本,最新版本的gcc、clang和 Visual C++ 都至少已经部分支持它。尽管 迁移到 C++17 并不像迁移到 C++11一样是一个巨大的变化,但 C++17也包含了非常多很小但却很有价值的语言 和库特性。它们再一次改变了我们使用 C++编程的方式,无论是对应用程序员还是提供基础库的程序员来说都 是如此。

2023-01-21

MSVC C++ STL 源码解析系列.md

MSVC C++ STL 源码解析系列.md

2023-01-10

C# Asp MVC 五层 .net 学生管理系统main.tar

这套源码 适合毕业设计和课程设计,因为有足够的注释 ,所以理解简单。采用五层架构 ,符合高内聚,低耦合的设计规范。课程设计书里有 软件测试。 一.导入数据库 数据库文件一般在Data、DB或者App_Data文件夹内 有两种方法导入数据库,任选其一即可: 1.用sqlserver打开XXX.sql脚本,然后执行脚本,即可自动创建数据库。 2 用sqlserver附件mdf文件(此方法有版本限制,某些低版本sqlserver可能出现无法附件的情况)(推荐此方法) 二.运行项目 1.修改链接字符串 链接字符串在web.config文件内,一般使用默认配置即可无需修改, 修改也很简单,将你的数据库服务器名复制进来,替换掉链接字符串里的服务器名即可(就是这个点号)。操作请看图:。 2 用VS打开解决方案文件(即.sln文件),如果没有解决方案文件,就用VS打开网站,运行即可。如果运行起来后,没有自动显示页面,则需设置默认启动项,右键某个你想设置的.aspx文件,在弹出的界面中点击“设为启动项”即可,然后重新点击运行。

2022-09-13

网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"==

网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"== “重载.pdf 构造函数可以调用虚函数吗, 析构函数可... 后置加加(1).pdf 后置加加.pdf 网将模板声明为友元.pdf @静态数据成员(1).pdf 静态数据成员.pdf 拷贝构造函数.pdf 类的继承.pdf 类的组合.pdf 模板.pdf 模板的特化(具体化) .pdf 前置加加重载(1).pdf 前置加加重载pdf 國浅拷贝与深拷贝.pdf 输入输出函数重载(1).pdf 输入输出函数重载pdf 画委托构造函数.pdf 析构函数.pdf 虛表.pdf 网虛函数和多态.pdf 网虚析构函数.pdf 网友元函数(1).pdf 國友元函数.pdf 运算符重载(1).pdf 运算符重载pdf 指针函数和函数指针.pdf 网重载赋值号的问题?为什么不能自赋值1...

2022-07-21

this指针的笔记呀呀呀呀

this指针的笔记呀呀呀呀

2022-07-21

git reset 的三个参数.pdf

1.--soft: 仅仅移动本地库 原先是统一战线的,git reset --soft 版本号 如果是后退了,相当于 工作区、暂存区 前进了 如果是前进了,相当于 工作区、暂存区 后退了 这个时候 git status 会根... 2.--mixed:本地库和暂存区否会变 git reset --mixed 版本号 如果是前进 相当于工作区自己后退了 如果是后退,相当于工作区前进了 此时git status,也会相应的发生变化,比如 变红色、变绿色等

2022-06-13

C#实现的学生管理系统,期末实训报告

含有sql脚本,和期末实训报告。目 录 第一章 学生信息管理系统概述 1.1 系统的主要功能 1.2 设计方法概述 1.3 学生信息管理系统的现状分析 1.3.1 学生信息管理系统应用的现状 1.3.2 管理系统开发的目的 第二章 系统开发平台 2.1 数据库系统的选择 2.2 系统开发工具的选择 第三章 系统框架设计 3.1 系统开发梗概 3.2 系统开发的步骤 3.3 系统的逻辑体系结构 第四章 系统概要和数据库设计 4.1 系统功能模块图 4.2 功能的说明 5.1 数据库及表的设计 5.2 数据库中的数据库关系图 5.3 数据库中存储过程的设计 5.3.1 存储过程的含义 5.3.2 存储过程的应用 第五章 系统详细设计及实现 5.4 系统模块设计 5.4.1 主窗口的设计 5.4.2 查询 5.4.3 密码修改 5.4.4选修课选课 第六章 开发系统遇到的问题和获得的经验 6.1 系统开发过程中遇到的问题 6.1.1 数据库连接 6.1.2 数据库中的表设计 6.1.3用户权限问题 6.2 从系统开发中获得

2022-05-15

QT学生管理系统的数据库文件(SQLLite)

和学生管理系统配套使用

2022-04-28

qt学生信息管理系统(含有数据库源码)

qt学生信息管理系统(含有数据库源码)

2022-04-28

makefile 文件编写

makefile 文件编写

2022-04-05

mysql 基础 进阶 运维

我自己做了个学习笔记,放在网上,大家也可以参考参考,不算特别详细但是老师讲到的知识点都记录下来了,欢迎大家观看

2022-03-20

Linux教程.zip

Linux教程.zip

2022-03-20

群主-SQL.pdf

群主-SQL.pdf

2022-03-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除