Django3 - 建站基础
学习开发网站必须了解网站的组成部分、网站类型、运行原理和开发流程。使用Django开发网站必须掌握Django的基本操作,比如创建项目、使用Django的操作指令以及开发过程中的调试方法。
一、网站的定义及组成
网站(Website)是指在因特网上根据一定的规则,使用HTML(Hyper Text Markup Language,超文本标记语言)等工具制作并用于展示特定内容相关网页的集合。简单地说,网站是一种沟通工具,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的网络服务,也可以通过网页浏览器来访问网站,获取自己需要的资讯或者享受网络服务。
在早期,域名(Domain Name)、空间服务器与程序是网站的基本组成部分,随着科技的不断进步,网站的组成日趋复杂,目前多数网站由域名、空间服务器、DNS域名解析、网站程序和数据库等组成。
域名由一串用点分隔的字母组成,代表互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位,已经成为互联网的品牌和网上商标保护必备的产品之一。通俗地说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易地找到你所在的位置。以百度的域名为例,百度的网址是由两部分组成的,标号“baidu”是这个域名的主域名体;前面的“www.”是网络名;最后的标号“com”则是该域名的后缀,代表是一个国际域名,属于顶级域名之一。
常见的域名后缀有以下几种:
空间服务器主要有虚拟主机、独立服务器和VPS(Virtual Private Server,虚拟专用服务器)。
虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点和应用组件等,提供必要的站点功能、数据存放和传输功能。所谓虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器。每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW、FTP、E-mail等)。虚拟主机是网络发展的福音,极大地促进了网络技术的应用和普及。同时,虚拟主机的租用服务成了网络时代新的经济形式,虚拟主机的租用类似于房屋租用。
独立服务器是指性能更强大、整体硬件完全独立的服务器,其CPU都在8核以上。
VPS即虚拟专用服务器,是将一个服务器分区成多个虚拟独立专享服务器的技术。每个使用VPS技术的虚拟独立服务器拥有各自独立的公网IP地址、操作系统、硬盘空间、内存空间和CPU资源等,还可以进行安装程序、重启服务器等操作,与一台独立服务器完全相同。
网站程序是建设与修改网站所使用的编程语言,源代码是由按一定格式书写的文字和符号编写的,可以是任何编程语言,常见的网站开发语言有Java、PHP、ASP.NET和Python。而浏览器就如程序的编译器,它会将源代码翻译成图文内容呈现在网页上。
二、网站的分类
资讯门户类网站以提供信息资讯为主要目的,是目前普遍的网站形式之一,例如新浪、搜狐和新华网。这类网站虽然涵盖的信息类型多、信息量大、访问群体广,但包含的功能比较简单,网站基本功能包含检索、论坛、留言和用户中心等。这类网站开发的技术含量主要涉及4个因素:
企业品牌类网站用于展示企业综合实力,体现企业文化和品牌理念。企业品牌网站非常强调创意,对于美工设计要求较高,精美的FLASH动画是常用的表现形式。网站内容组织策划和产品展示体验方面也有较高的要求。网站利用多媒体交互和动态网页技术,针对目标客户进行内容建设,达到品牌营销的目的。企业品牌网站可细分为以下三类:
交易类网站以实现交易为目的,以订单为中心。交易的对象可以是企业和消费者。这类网站有3项基本内容:商品如何展示、订单如何生成和订单如何执行。
因此,这类网站一般需要有产品管理、订购管理、订单管理、产品推荐、支付管理、收费管理、送发货管理和会员管理等基本功能。功能复杂一点的可能还需要积分管理系统、VIP管理系统、CRM系统、MIS系统、ERP系统和商品销售分析系统等。交易类网站成功与否的关键在于业务模型的优劣。交易类网站可细分为以下三大类型:
办公及政府机构网站分为企业办公事务类网站和政府办公类网站。企业办公事务类网站主要包括企业办公事务管理系统、人力资源管理系统和办公成本管理系统。
政府办公类网站是利用政府专用网络和内部办公网络而建立的内部门户信息网,是为了方便办公区域以外的相关部门互通信息、统一处理数据和共享文件资料而建立的,其基本功能有:
网站面向社会公众,既可提供办事指南、政策法规和动态信息等,又可提供网上行政业务申报、办理及相关数据查询等。
互动游戏网站是近年来国内逐渐风靡起来的一种网站。这类网站的投入是根据所承载游戏的复杂程度来定的,其发展趋势是向超巨型方向发展,有的已经形成了独立的网络世界。
功能性网站是一种新型网站,其中Google和百度是典型代表。这类网站的主要特征是将一个具有广泛需求的功能扩展开来,开发一套强大的功能体系,将功能的实现推向极致。功能在网页上看似简单,但实际投入成本相当惊人,而且效益非常巨大。
三、网站运行原理及开发流程
3.1 常用术语
如果刚接触网站开发,那么很有必要了解网站的运行原理。在了解网站的运行原理之前,首先需要理解网站中一些常用的术语。
客户端:在计算机上运行并连接到互联网的应用程序,简称浏览器,如Chrome、Firefox和IE。用户通过操作客户端实现网站和用户之间的数据交互。
服务器:能连接到互联网且具有IP地址的计算机。服务器主要接收和处理用户的请求信息。当用户在客户端操作网页的时候,实质上是向网站发送一个HTTP请求,网站的服务器接收到请求后会执行相应的处理,最后将处理结果返回客户端并生成相应的网页信息。
IP地址:互联网协议地址,TCP/IP网络设备(计算机、服务器、打印机、路由器等)的数字标识符。互联网上的每台计算机都有一个IP地址,用于识别和通信。IP地址有4组数字,以小数点分隔(例如244.155.65.2),这被称为逻辑地址。为了在网络中定位设备,通过TCP/IP协议将逻辑IP地址转换为物理地址(物理地址即计算机里面的MAC地址)。
域名:用于标识一个或多个IP地址。
DNS:域名系统,用于跟踪计算机的域名及其在互联网上相应的IP地址。
ISP:互联网服务提供商。主要工作是在DNS(域名系统)中查找当前域名对应的IP地址。
TCP/IP:传输控制协议/互联网协议,是广泛使用的通信协议。
HTTP:超文本传输协议,是浏览器和服务器通过互联网进行通信的协议。
3.2 网站的运行原理
了解网站常用术语后,我们通过一个简单的例子来讲解网站运行的原理。
(1)在浏览器中输入网站地址,如www.github.com。
(2)浏览器解析网站地址中包含的信息,如HTTP协议和域名(github.com)。
(3)浏览器与ISP通信,在DNS中查找www.github.com所对应的IP地址,然后将IP地址发送到浏览器的DNS服务,最后向www.github.com的IP地址发送请求。
(4)浏览器从网站地址中获取IP地址和端口(HTTP协议默认为80端口,HTTPS协议默认为443端口),并打开TCP套接字连接,实现浏览器和Web服务器的连接。
(5)浏览器根据用户操作向服务器发送相应的HTTP请求,如打开www.github.com的主页面。
(6)当Web服务器接收请求后,根据请求信息查找该HTML页面。若页面存在,则Web服务器将处理结果和页面返回浏览器。若服务器找不到页面,则发送一个404错误消息,代表找不到相关的页面。
3.3 网站的开发流程
很多人认为网站开发是一件很困难的事情,其实没有想象中那么困难。只要明白了网站的开发流程,就会觉得网站开发非常简单。但如果没有一个清晰的开发流程指导开发,会觉得整个开发过程难以实行。完整的开发流程如下:
(1)需求分析:当拿到一个项目时,必须进行需求分析,清楚知道网站的类型、具体功能、业务逻辑以及网站的风格,此外还要确定域名、网站空间或者服务器以及网站备案等。
(2)规划静态内容:重新确定需求分析,并根据用户需求规划出网站的内容板块草图。
(3)设计阶段:根据网站草图由美工制作成效果图。就好比建房子一样,首先画出效果图,然后才开始建房子,网站开发也是如此。
(4)程序开发阶段:根据草图划分页面结构和设计,前端和后台可以同时进行。前端根据美工效果负责制作静态页面;后台根据页面结构和设计,设计数据库数据结构和开发网站后台。
(5)测试和上线:在本地搭建服务器,测试网站是否存在Bug。若无问题,则可以将网站打包,使用FTP上传至网站空间或者服务器。
(6)维护推广:在网站上线之后,根据实际情况完善网站的不足,定期修复和升级,保障网站运营顺畅,然后对网站进行推广宣传等。
3.4 任务划分
网站开发必须根据用户需求制定开发任务,不同职位的开发人员负责不同的功能设计与实现,各个职位的工作划分如下:
(1)网页设计由UI负责设计。UI需要考虑用户体验、网站色调搭配和操作流程等。
(2)前端开发人员将网页设计图转化成HTML页面,主要编写HTML网页、CSS样式和JavaScript脚本,如果采用前后端分离,整个网站的功能就皆由前端人员实现。
(3)后端开发人员负责实现网站功能和数据库设计。网站功能需要数据库提供数据支持,实质上是实现数据库的读写操作;数据库设计需要根据网站功能设计相应的数据表,并且还要考虑数据表之间的数据关联。如果采用前后端分离的开发方式,后端人员只需编写API接口,由前端人员调用API接口实现网站功能。
(4)测试人员负责测试网站功能是否符合用户需求。测试过程需要编写测试用例进行测试,如果发现功能存在Bug,就需向开发人员提交Bug的重现方法。只要功能发生修改或变更,测试人员就要重新测试。
(5)运维人员负责网站的部署和上线。网站部署主要搭建在Linux系统,除了安装Django环境之外,还需要将Django搭建在Nginx或Apache服务器上,并在Nginx或Apache上绑定网站的域名。
四、走进Django
Django是一个开放源代码的Web应用框架,由Python写成,最初用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站,即CMS(内容管理系统)软件,于2005年7月在BSD许可证下发布,这套框架是以比利时的吉卜赛爵士吉他手Django Reinhardt来命名的。Django采用了MTV的框架模式,即模型(Model)、模板(Template)和视图(Views),三者之间各自负责不同的职责。
模型:数据存取层,处理与数据相关的所有事务,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。
视图:业务逻辑层,存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁。
Django的主要目的是简便、快速地开发数据库驱动的网站。它强调代码复用,多个组件可以很方便地以插件形式服务于整个框架。Django有许多功能强大的第三方插件,可以很方便地开发出自己的工具包,这使得Django具有很强的可扩展性。此外,Django还强调快速开发和DRY(Do Not Repeat Yourself)原则。Django基于MTV的设计十分优美,其具有以下特点:
对象关系映射(Object Relational Mapping,ORM):通过定义映射类来构建数据模型,将模型与关系数据库连接起来,使用ORM框架内置的数据库接口可实现复杂的数据操作。
URL设计:开发者可以设计任意的URL(网站地址),而且还支持使用正则表达式设计。
模板系统:提供可扩展的模板语言,模板之间具有可继承性。
表单处理:可以生成各种表单模型,而且表单具有有效性检验功能。
Cache系统:完善的缓存系统,可支持多种缓存方式。
Auth认证系统:提供用户认证、权限设置和用户组功能,功能扩展性强。
国际化:内置国际化系统,方便开发出多种语言的网站。
Admin后台系统:内置Admin后台管理系统,系统扩展性强。
五、安装Django
开发环境为Windows操作系统和Python 3。在安装Django之前,首先安装Python,在官网下载.exe安装包即可,建议安装Python 3.8或以上的版本。完成Python的安装后,接着安装Django版本,安装方法如下。
使用pip进行安装,可以按快捷键Windows+R打开“运行”对话框,然后在对话框中输入“CMD”并按回车键,进入命令提示符窗口(也称为终端)。在命令提示符窗口输入以下安装指令:
pip install Django
输入上述指令后按回车键,就会自行下载Django最新版本并安装,我们只需等待安装完成即可。
除了使用pip安装之外,还可以从网上下载Django的压缩包自行安装。在浏览器上输入网址并找到Django的下载链接,如图所示。
(1)Django 官方网站 • 网址: https://www.djangoproject.com/ ◦ 这是 Django 的官方主页,提供框架的详细介绍、最新动态、文档链接和社区支持信息 。
(2)Django 下载地址 • 下载页面: https://www.djangoproject.com/download/
然后将下载的文件放到D盘,并打开命令提示符窗口,输入以下安装指令:
pip install D:\Django-3.1.4-py3-none-any.whl
输入指令后按回车键,等待安装完成的提示即可。完成Django的安装后,需要进一步校验安装是否成功,再次进入命令提示符窗口,输入“python”并按回车键,此时进入Python交互解释器,在交互解释器下输入校验代码:
>>> import django
>>> django.__version__
从上面返回的结果是当前安装的Django版本信息,这也说明Django安装成功。
六、创建项目
一个项目可以理解为一个网站,创建Django项目可以在命令提示符窗口输入创建指令完成。打开命令提示符窗口,将当前路径切换到D盘并输入项目创建指令:
django-admin startproject MyDjango
指令是在D盘的路径下创建Django项目,指令中的“MyDjango”是项目名称。项目创建后,可以在D盘下看到新创建的文件夹MyDjango,在PyCharm下查看该项目的结构,如图所示。
MyDjango项目里包含MyDjango文件夹和manage.py文件,而MyDjango文件夹又包含5个.py文件。项目的各个文件说明如下:
manage.py:命令行工具,内置多种方式与项目进行交互。在命令提示符窗口下,将路径切换到MyDjango项目并输入python manage.py help,可以查看该工具的指令信息。
__init__.py:初始化文件,一般情况下无须修改。
asgi.py:开启一个ASGI服务,ASGI是异步网关协议接口。
settings.py:项目的配置文件,项目的所有功能都需要在该文件中进行配置。
urls.py:项目的路由设置,设置网站的具体网址内容。
wsgi.py:全称为Python Web Server Gateway Interface,即Python服务器网关接口,是Python应用与Web服务器之间的接口,用于Django项目在服务器上的部署和上线,一般不需要修改。
完成项目的创建后,接着创建项目应用,项目应用简称为App,相当于网站功能,每个App代表网站的一个功能。App的创建由文件manage.py实现,创建指令如下:
D:\MyDjango>python manage.py startapp index
从D盘进入项目MyDjango,然后使用python manage.py startapp XXX创建,其中XXX是应用的名称,可以自行命名。上述指令创建了网站首页,再次查看项目MyDjango的目录结构,如图所示。
从图可以看到,项目新建了index文件夹,其可作为网站首页。在index文件夹可以看到有多个.py文件和migrations文件夹,说明如下:
migrations:用于生成数据迁移文件,通过数据迁移文件可自动在数据库里生成相应的数据表。
__init__.py:index文件夹的初始化文件。
admin.py:用于设置当前App的后台管理功能。
apps.py:当前App的配置信息,在Django 1.9版本后自动生成,一般情况下无须修改。
models.py:定义数据库的映射类,每个类可以关联一张数据表,实现数据持久化,即MTV里面的模型(Model)。
tests.py:自动化测试的模块,用于实现单元测试。
views.py:视图文件,处理功能的业务逻辑,即MTV里面的视图(Views)。
完成项目和App的创建后,最后在命令提示符窗口输入以下指令启动项目:
D:\>cd MyDjango
D:\MyDjango>python manage.py runserver 8001
将命令提示符窗口的路径切换到项目的路径,输入运行指令python manage.py runserver 8001,其中8001是端口号,如果在指令里没有设置端口,端口就默认为8000。最后在浏览器上输入http://127.0.0.1:8001/,可看到项目的运行情况,如图所示。
七、PyCharm创建项目
除了在命令提示符窗口创建项目之外,还可以在PyCharm中创建项目。PyCharm必须为专业版才能创建与调试Django项目,社区版是不支持此功能的。打开PyCharm并在左上方单击File→New Project,创建新项目,如图所示。
项目创建后,可以看到目录结构多出了templates文件夹,该文件夹用于存放HTML模板文件,如图所示。
接着创建App应用,可以在PyCharm的Terminal中输入创建指令,创建指令与命令提示符窗口中输入的指令是相同的。完成项目和App的创建后,启动项目。如果项目是由PyCharm创建的,就直接单击“运行”按钮启动项目。如果项目是在命令提示符窗口创建的,想要在PyCharm启动项目,而PyCharm没有运行脚本,就需要对该项目创建运行脚本,如图所示。
单击图中的Edit Configurations就会出现Run/Debug Configurations界面,单击该界面左上方的+并选择Django server,输入脚本名字,单击OK按钮即可创建运行脚本,如图所示。
注意:由于PyCharm自动为我们创建templates文件夹,并且在配置文件settings.py的TEMPLATES的DIRS添加templates文件夹的路径信息。从Django 3.1版本开始,配置文件settings.py的路径信息改用pathlib模块,Django 3.1之前版本使用os模块,因此PyChram添加templates文件夹的路径信息仍使用os模块。
--------------------------------------
没有自由的秩序和没有秩序的自由,同样具有破坏性。
相关文章:
Django3 - 建站基础
学习开发网站必须了解网站的组成部分、网站类型、运行原理和开发流程。使用Django开发网站必须掌握Django的基本操作,比如创建项目、使用Django的操作指令以及开发过程中的调试方法。 一、网站的定义及组成 网站(Website)是指在因特网上根据一定的规则,…...
UE5蓝图设置界面尺寸大小
UE5蓝图设置界面尺寸大小 Create widget 创建UIadd to Viewport 添加视图get Game User Settings获取游戏用户设置set Screen Resolutions 设置屏幕尺寸大小1920*1080set Fullscreen Mode 设置全屏模式为:窗口化或者全屏Apply Settings 应用设置...
无数字字母RCE
无数字字母RCE,这是一个老生常谈的问题,就是不利用数字和字母构造出webshell,从而能够执行我们的命令。 <?php highlight_file(__FILE__); $code $_GET[code]; if(preg_match("/[A-Za-z0-9]/",$code)){die("hacker!&quo…...
AutoGen参数说明
UserProxyAgent用户 user_proxy = UserProxyAgent配置说明: # 构造参数 def __init__(self,name: str,is_termination_msg: Optional[Callable[[Dict], bool]] = None,max_consecutive_auto_reply: Optional[int] = None,human_input_mode: Literal["ALWAYS", &qu…...
6.2 GitHub API接口设计实战:突破限流+智能缓存实现10K+仓库同步
GitHub Sentinel 定期更新 API 接口设计 关键词:GitHub API 集成、异步爬虫开发、RESTful 接口设计、请求限流策略、数据增量更新 1. 接口架构设计原则 采用 分层隔离架构 实现数据采集与业务逻辑解耦: #mermaid-svg-WihvC78J0F5oGDbs {font-family:"trebuchet ms&quo…...
用java代码如何存取数据库的blob字段
一.业务 在业务中我们被要求将文件或图片等转成 byte[] 或 InputStream存到数据库的Blob类型的字段中. 二.Blob类型介绍 在 MySQL 中,Blob 数据类型用于存储二进制数据。MySQL 提供了四种不同的 Blob 类型: TINYBLOB: 最大存储长度为 255 个字节。BL…...
2025蓝桥杯C++研究生组真题-上海市省赛
2025蓝桥杯C研究生组真题 A:数位倍数(5分) 问题描述:请问在 1 至 202504(含)中,有多少个数的各个数位之和是 5 的整数倍。例如:5、19、8025 都是这样的数。 A是填空题,…...
原子操作CAS(Compare-And-Swap)和锁
目录 原子操作 优缺点 锁 互斥锁(Mutex) 自旋锁(Spin Lock) 原子性 单核单CPU 多核多CPU 存储体系结构 缓存一致性 写传播(Write Propagation) 事务串行化(Transaction Serialization&#…...
Aspose.Words导出word,服务器用内存流处理,不生成磁盘文件
框架集:.NET8 public async Task<IActionResult> ExportPDF(long? id) {var infoawait form_Dahui_ReportDao.GetAsync(id);if (info null){return Content("没找到数据");}//读取word模板string fileTemp Path.Combine(AppContext.BaseDirect…...
攻防世界——Web题ez_curl
目录 Express PHP和Node.js的解析差异 Python代码 这道题最终得不到flag,用了很多师傅的代码也不成功。但还是需要学习 下载的附件: const express require(express);const app express();const port 3000; const flag process.env.flag;app.ge…...
力扣面试150题--螺旋矩阵
Day 20 题目描述 思路 根据题目描述,我们需要顺时针输出矩阵元素,顺时针说明有四种输出状态,横向从左到右和从右到左,纵向从上到下和从下到上,唯一的难点在于,输出完成一层后,如何进入内层&am…...
智能指针之设计模式2
前面介绍了工厂模式控制了智能指针和资源对象的创建过程,现在介绍一下智能指针是如何利用代理模式来实现“类指针(like-pointer)”的功能,并控制资源对象的销毁过程的。 2、代理模式 代理模式是为其它对象提供一种代理以控制对这…...
【Redis】redis持久化
Redis 持久化 Redis:非关系型的内存数据库 持久化:将数据永久写入磁盘(内存→磁盘) Redis 默认开启了持久化,默认模式为 RDB 为什么需要持久化? Redis 是内存数据库,宕机或关机后数据会丢失。…...
AtCoder Beginner Contest 401 E题 题解
E - Reachable Sethttp://E - Reachable Set 题意概述 : 给定一个无向图, 对于每个 ,解决以下问题: -选择最少的一些顶点,使得删除这些顶点及其关联的所有边后 点1只能到达以内的所有点 牵制芝士 :头文…...
Kubernetes控制平面组件:API Server Webhook 授权机制 详解
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
【CodeMirror】系列(二)官网示例(六)自动补全、边栏
一、自动补全 codemirror/autocomplete 包提供了在编辑器中显示输入建议的功能。这个示例展示了如何启用该功能以及如何编写自己的补全来源。 自动补全是通过在编辑器的配置项中加入 autocompletion 扩展实现的。有些语言包支持内置的自动补全功能,比如HTML包。 默…...
CSS 表格样式学习笔记
CSS 提供了强大的工具来美化和定制 HTML 表格的外观。通过合理使用 CSS 属性,可以使表格更加美观、易读且功能强大。以下是对 CSS 表格样式的详细学习笔记。 一、表格边框 1. 单独边框 默认情况下,表格的 <table>、<th> 和 <td> 元…...
简单记录一下Android四大组件
1、Android Layout 1.1、LinearLayout 线性布局,子控件按照水平或垂直的方向依次排列,排列方向通过属性android:orientation控制,horizontal为水平排列,vertical为垂直排列。对于同一水平线上的控件,可以调整它的lay…...
在线地图支持天地图和腾讯地图,仪表板和数据大屏支持发布功能,DataEase开源BI工具v2.10.7 LTS版本发布
2025年4月11日,人人可用的开源BI工具DataEase正式发布v2.10.7 LTS版本。 这一版本的功能变动包括:数据源方面,Oracle数据源支持获取和查询物化视图;图表方面,在线地图支持天地图、腾讯地图;新增子弹图&…...
【图像处理基石】什么是通透感?
一、画面的通透感定义 画面的通透感指图像在色彩鲜明度、空间层次感、物体轮廓清晰度三方面的综合表现,具体表现为: 色彩鲜明:颜色纯净且饱和度适中,无灰暗或浑浊感;层次分明:明暗过渡自然,光…...
猫咪如厕检测与分类识别系统系列【六】分类模型训练+混合检测分类+未知目标自动更新
前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠的如…...
NoSQL入门指南:Redis与MongoDB的Java实战
一、为什么需要NoSQL? 在传统SQL数据库中,数据必须严格遵循预定义的表结构,就像把所有物品整齐摆放在固定尺寸的货架上。而NoSQL(Not Only SQL)数据库则像一个灵活的储物间,允许存储各种类型的数据&#x…...
游戏引擎学习第223天
回顾 今天我们正在进行过场动画序列的制作,因此我想深入探讨这个部分。昨天,我们暂时停止了过场动画的制作,距离最终结局还有一些内容没有完成。今天的目标是继续完成这些内容。 我们已经制作了一个过场动画的系列,并把它们集中…...
【redis进阶二】分布式系统之主从复制结构(1)
目录 一 为什么要有分布式系统? 二 分布式系统涉及到的非常关键的问题:单点问题 三 学习部署主从结构的redis (1)创建一个目录 (2)进入目录拷贝两份原有redis (3)使用vim修改几个选项 (4)启动两个从节点服务器 (5)建立复制,要想配…...
(自用)若依生成左树右表
第一步: 在数据库创建树表和单表: SQL命令: 商品表 CREATE TABLE products (product_id INT AUTO_INCREMENT PRIMARY KEY,product_name VARCHAR(255) , price DECIMAL(10, 2) , stock INT NOT NULL, category_id INT NOT NULL); 商品分类…...
VectorBT量化入门系列:第六章 VectorBT实战案例:机器学习预测策略
VectorBT量化入门系列:第六章 VectorBT实战案例:机器学习预测策略 本教程专为中高级开发者设计,系统讲解VectorBT技术在量化交易中的应用。通过结合Tushare数据源和TA-Lib技术指标,深度探索策略开发、回测优化与风险评估的核心方法…...
5G网络下客户端数据业务掉线频繁
MCPTT(Mission Critical Push-to-Talk)客户端的日志,和界面在待机状态下(即没有做通话等业务操作),会频繁提示“离线”。 主要先看有没有丢网,UL BLER有没有问题。确认没有问题。看到业务信道释…...
CPU(中央处理器)
一、CPU的定义与核心作用 CPU 是计算机的核心部件,负责 解释并执行指令、协调各硬件资源 以及 完成数据处理,其性能直接影响计算机的整体效率。 核心功能: 从内存中读取指令并译码。执行算术逻辑运算。控制数据在寄存器、内存和I/O设备间的…...
Java从入门到“放弃”(精通)之旅——程序逻辑控制④
Java从入门到“放弃”(精通)之旅🚀:程序逻辑的完美理解 一、开篇:程序员的"人生选择" 曾经的我,生活就像一段顺序执行的代码: System.out.println("早上8:00起床"); Syste…...
[Dify] 基于明道云实现金融业务中的Confirmation生成功能
在金融业务的日常流程中,交易记录的处理不仅涉及数据录入、流程审批,更重要的是其最终输出形式——交易确认函(Confirmation)。本文将介绍如何通过明道云的打印模板功能,快速、准确地生成符合业务需求的交易Confirmation,提升工作效率与合规性。 为什么需要Confirmation?…...
Qt安卓设备上怎么安装两个不同的Qt应用?
在安卓设备上安装两个不同的Qt应用时,需要确保这两个应用在安卓系统中被视为独立的应用程序。以下是详细的步骤和注意事项,帮助你实现这一目标: 一、修改应用的包名 安卓系统通过应用的包名(package属性)来区分不同的…...
Prompt工程提示词(1-6章)
White graces:个人主页 🐹今日诗词:怅望千秋一洒泪,萧条异代不同时🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 目录 🚀 第…...
0基础 | 硬件滤波 C、RC、LC、π型
一、滤波概念 (一)滤波定义 滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的重要措施。通过滤波器实现对特定频率成分的筛选,确保目标信号的纯净度,提升系统稳定性。 (二)滤波器分…...
C++ 编程指南34 - C++ 中 ABI 不兼容的典型情形
一:概述 ABI(Application Binary Interface)是二进制层面的接口规范。如果一个库的 ABI 发生了变化,那么基于旧 ABI 编译的代码可能在运行时与新库不兼容(即使接口名字都一样也不行)。那么在C++中编程中,哪些情形会导致ABI不兼容呢?下面逐一列举一下。 二:C++ 中 ABI…...
【动态规划】深入动态规划:背包问题
文章目录 前言01背包例题一、01背包二、分割等和子集三、目标和四、最后一块石头的重量|| 完全背包例题一、完全背包二、 零钱兑换三、零钱兑换||四、完全平方数 前言 什么是背包问题,怎么解决算法中的背包问题呢? 背包问题 (Knapsack problem) 是⼀种组…...
NVIDIA AI Aerial
NVIDIA AI Aerial 适用于无线研发的 NVIDIA AI Aerial 基础模组Aerial CUDA 加速 RANAerial Omniverse 数字孪生Aerial AI 无线电框架 用例构建商业 5G 网络加速 5G生成式 AI 和 5G 数据中心 加速 6G 研究基于云的工具 优势100% 软件定义通过部署在数字孪生中进行测试6G 标准化…...
计算机视觉6——相机基础
一、数字相机基本工作原理 (一)像素概念 数字相机生成二维图像,图像最小单元是像素。 每个像素对应三维世界中某个特定方向,像素值衡量某一时刻来自该方向的光照强度/颜色 ,即相机度量每个像素的光照情况并保存到对…...
入门到精通,C语言十大经典程序
以下是十个经典的C语言程序示例,这些程序涵盖了从基础到稍复杂的应用场景,适合初学者和有一定基础的开发者学习和参考。 1. Hello, World! 这是每个初学者学习编程时的第一个程序,用于验证开发环境是否正确配置。 #include <stdio.h>…...
【毕设】Python构建基于TMDB电影推荐系统
个性化电影推荐系统 这是一个基于FastAPI开发的现代化电影推荐系统,结合了协同过滤和深度学习技术,为用户提供个性化的电影推荐服务。 主要功能 🎯 个性化电影推荐🔍 电影搜索与浏览⭐ 电影评分系统💝 收藏夹功能&a…...
嵌入式常见概念的介绍
目录 一、MCU、MPU、ARM (一)MCU(微控制器) (二)MPU(微处理器) (三)ARM(架构) 二、DSP (一)数字信号处理…...
富兴号:拨云见日,打造普洱品质典范
在高端普洱茶市场的混沌格局中,价格与品质的天平严重失衡,消费者往往深陷 “高价却难觅好茶” 的困境。而新兴品牌富兴号强势崛起,奋力冲破这一迷局,致力于重塑 “号级茶” 的卓越品质,为茶叶赋予珍贵的品鉴与收藏价值…...
【WORD】批量将doc转为docx
具体步骤进行: 打开Word文档,按下AltF11快捷键,打开VBA编辑器。在VBA编辑器中,左侧的“项目资源管理器”窗口会显示当前打开的Word文档相关项目。找到您要添加代码的文档项目(通常以文档名称命名)…...
Linux内存管理架构(1)
0.内存空间架构 1.用户空间 在 Linux 系统中,应用程序通过 malloc() 申请内存,并通过 free() 释放内存时,底层的内存管理是由 glibc(GNU C Library)中的内存分配器实现的。glibc 的内存分配器负责与操作系统的内核交互…...
Ubuntu 各个常见长期支持历史版本与代号
文章目录 1. Ubuntu 历史版本与代号2. 查看当前系统版本 在 Ubuntu 操作系统里,每个版本都有一个别具特色的名字。该名字由一个形容词与一个动物名称构成,且形容词和动物名称的首字母是一样的。例如 “Warty Warthog(长疣的疣猪)”…...
信息安全管理与评估2021年国赛正式卷答案截图以及十套国赛卷
2021年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项 任务书1 赛项时间 共计X小时。 赛项信息 赛项内容 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 平台搭建与安全设备配置防护 任务1 网络平台搭建 任务2 网络安全设备配置与防护 第二…...
在线上定位1G日志文件中的异常信息时,我这样做合适吗
1G级线上日志文件 的异常定位系统性方案 一、快速定位流程 import datetime import randomdef generate_springboot_log(file_name, file_size_gb):# 模拟Spring Boot日志内容log_levels ["INFO", "DEBUG", "WARNING", "ERROR"]cla…...
Transformer模型中的两种掩码
模型训练通常使用 批处理batch来提升训练效率。而实际中Transformer的输入序列(如句子、文本片段)长度往往不一致。为了让这些样本可以组成一个统一的形状 [B, T] 的张量给GPU进行并行计算提高效率,需要将较短的序列填充(pad&…...
FastAPI-MPC正式发布,新的AI敏捷开发利器
FastAPI-MCP发布:零配置构建微服务控制平台的革命性实践 引言 在微服务架构日益复杂的今天,如何快速实现API接口的标准化管理与可视化控制成为开发者面临的核心挑战。近日,FastAPI-MCP工具的发布引发了技术社区广泛关注,其宣称能…...
Spring Boot 项目基于责任链模式实现复杂接口的解耦和动态编排!
全文目录: 开篇语前言一、责任链模式概述责任链模式的组成部分: 二、责任链模式的核心优势三、使用责任链模式解耦复杂接口1. 定义 Handler 接口2. 实现具体的 Handler3. 创建订单对象4. 在 Spring Boot 中使用责任链模式5. 配置责任链6. 客户端调用 四、…...
学习笔记八——内存管理相关
📘 目录 内存结构基础:栈、堆、数据段Rust 的内存管理机制(对比 C/C、Java)Drop:Rust 的自动清理机制Deref:为什么 *x 能访问结构体内部值Rc:多个变量“共享一个资源”怎么办?Weak&…...