SQLite3 数据库学习(六):Qt 嵌入式 Web 服务器详解
参考引用
- SQLite 权威指南(第二版)
- SQLite3 入门
1. Apache 搭建 cgi 环境
1.1 什么是 Apache
- Apache 是世界使用排名第一的 Web 服务器软件
- 它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用
1.2 具体搭建流程
通浏览器 /Qt 程序访问 apache2 后的 cgi 程序
-
1、安装 apache2 服务器
$ sudo apt install apache2 -
2、测试是否安装成功
- 在浏览器中输入虚拟机 ip 地址,显示下图则表示安装成功

- 在浏览器中输入虚拟机 ip 地址,显示下图则表示安装成功
-
3、配置 apache2 支持 cgi 程序
- 进入 /etc/apache2/mods-enabled 目录下,把 cgi 配置文件创建软连接到当前目录下
$ cd /etc/apache2/mods-enabled $ sudo ln -s ../mods-available/cgid.conf cgid.conf $ sudo ln -s ../mods-available/cgid.load cgid.load $ sudo ln -s ../mods-available/cgi.load cgi.load- 在 apache2.conf 文件最前面添加 ServerName 127.0.0.1
$ cd /etc/apache2/ $ sudo vim apache2.conf- 重启 apache
$ sudo apachectl restart- 进入 /usr/lib/cgi-bin/ 目录下写 cgi 程序(c/c++ 语言程序)并编译
$ cd /usr/lib/cgi-bin/ $ sudo vim main.c $ sudo gcc -o main.cgi main.c// main.c #include <stdio.h> int main(void) {printf("Content-type:text/html;charset=utf-8\n\n"); // 防止乱码printf("hello world\n\n");printf("hello world\n\n");printf("hello world\n\n");return 0; }- 查看放置 cgi 程序的目录(无需操作,了解即可)
$ cd /etc/apache2/conf-enabled $ vim serve-cgi-bin.conf

- 4、测试

2. cgi 接收客户端的数据
访问 cgi 程序并且把 number=100 参数传递给 cgi 程序
- 浏览器 get 请求:实际是 GET,它将数据打包放置在环境变量 QUERY_STRING 中作为 URL 整体的一部分传递给服务器,cgi 通过获取环境变量得到数据
- 在 cgi 程序中查询环境变量获取数据
// main.c #include <stdio.h> #include <stdlib.h>int main(void) {printf("Content-type:text/html;charset=utf-8\n\n");char *str = getenv("QUERY_STRING"); //str = "number=100";if (str == NULL) {printf("arg error\n\n");} else {//str = "number=100";int data = 0;sscanf(str, "number=%d", &data); // 解析出 100 存储在 data 中printf("hello world %d^2=%d\n\n", data, data*data);}return 0; }

以下内容待更新…
3. Qt 访问 cgi 程序
4. Qt 获取 linux 目录
5. Qt 通过 cgi 登录注册
6. Qt 通过 cgi 访问数据库和 linux 命令
相关文章:
SQLite3 数据库学习(六):Qt 嵌入式 Web 服务器详解
参考引用 SQLite 权威指南(第二版)SQLite3 入门 1. Apache 搭建 cgi 环境 1.1 什么是 Apache Apache 是世界使用排名第一的 Web 服务器软件 它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用 1.2 具体搭建流程…...
各平台chatGPT使用体验(国内外)
首推:openAI 地址:https://chat.openai.com/ 这个真的很好用,而且回复的结果也基本让让人满意,个人首推,而且对比国内的除了回答更令人满意外,它更连贯,不像国内的gpt一句一问,跟进…...
机器学习【02】在 Pycharm 里使用 Jupyter Notebook
只有 Pycharm 的 Professional 版才支持 Jupyter Notebook 一.新建一个项目 参考新建项目 二.相关设置 右键你的项目名,新建一个JupyterNotebook文件 新建后发现 点击最右边的install jupyter可以自动安装 也可以使用命令行在对应的虚拟环境中安装 我们使用直…...
什么是proxy代理?
1. 什么是proxy代理 代理(Proxy)是 JavaScript 中一种非常强大而灵活的功能。代理允许你拦截并覆盖对象的默认行为,提供了一种拦截、定制和扩展对象操作的机制。 简单说,就是在访问对象属性或者赋值时,可以做一些额外…...
opencv-python读取的图像分辨率太大不能完全显示
如果使用OpenCV-Python读取的图像分辨率太大,无法完全显示在屏幕上,可以考虑以下几种方法: 1.缩放图像:使用OpenCV的resize函数,将图像缩小到适合屏幕显示的大小。例如,可以将图像的宽度和高度都缩小到屏幕…...
【ArcGIS Pro微课1000例】0038:基于ArcGIS Pro的人口密度分析与制图
文章目录 一、人口密度二、人口密度分析1. 点密度分析2. 核密度分析三、结果比对一、人口密度 人口密度是指单位土地面积上居住的人口数,通常以每平方千米或每公顷内的常住人口为单位计算。人口密度同资源、经济密切结合,因此,科学准确地分析人口密度的分布情况,对合理制定…...
Python 安装Vue依赖包发生异常:npm ERR! notsup Required: {“node“:“^18.17.0 || >=20.5.0“}
异常: 原因:node和npm要求升级为高版本 解决:重新安装node环境 (1) 官网下载Node.js (2)双击安装node.js (3)运行查看...
TypeScript 项目 Airbnb 语法风格 ESLint 配置
TypeScript 项目 Airbnb 语法风格 ESLint 配置 1. 配置 安装: npm i -D eslint-config-airbnb-typescript typescript-eslint/eslint-plugin^6.0.0 typescript-eslint/parser^6.0.0配置: .eslintrc.js: module.exports {root: true,env: {node: true…...
怎么使用sentinel,以及所有的知识点
Sentinel是一个开源的流量控制和实时监控系统,主要用于保护企业级应用程序免受不良的请求。下面是使用Sentinel需要了解的知识点: 1. 什么是流量控制? 流量控制指的是限制应用程序的请求流量,防止过多的请求超出系统的承受范围。…...
中国一年有457万人确诊癌症!医生提示:这4种食物,再爱吃也要管住嘴
癌症是威胁人类生命健康的重大疾病,癌症的发生因素一直以来都是专家学者重点探索的课题。据世卫组织最新公布的数据显示,食物或与癌症发生之间存在着密切的联系,某些食物的摄入过多可能会增加患癌症的风险,所以我们应该警惕&#…...
小程序项目:springboot+vue基本微信小程序的宠物领养系统
项目介绍 当今科技发展迅速,交通环境也变得越来越复杂。人们的出行方式变得多元化,这给视障人士带来了一定的困扰。而导盲犬可以帮助视障人士外出行走,提高他们的生活质量。在我国,导盲犬的数量远远少于视障人士的数量。由于导盲…...
数据挖掘 K近邻
什么时候用K近邻? 交叉验证的时候。最常见的交叉验证方法是K折交叉验证,其中数据集被均匀分成K个子集,称为折,然后执行K次训练和测试,每次选择不同的折作为测试集,其余的作为训练集。最后,将K次…...
项目去除git版本控制
我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…...
ICMPv6报文与邻居状态跟踪
ICMPv6报文 ICMPv6(Internet Control Message Protocol for the IPv6)是IPv6的基础协议之一。 在IPv4中,Internet控制报文协议ICMP(Internet Control Message Protocol)向源节点报告关于向目的地传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息…...
React中通过children prop或者React.memo来优化子组件渲染【react性能优化】
文章目录 前言未优化之前的代码问题解决方案一,通过children prop解决方案二,通过React.memo后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:react.js 🐱👓博主在前端领域还有很多知识和…...
「Verilog学习笔记」含有无关项的序列检测
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output reg match);reg [8:0] a_tem ; always (posedge clk or negedge rst_n) begin if (~rs…...
k8s部署的java服务查看连接nacos缓存的配置文件
一、问题描述 k8s部署的java服务,使用nacos中的配置文件,需要在缓存中查看该服务具体是使用到了哪些配置文件 二、解决 参考文档: https://nacos.io/zh-cn/docs/system-configurations.html 文档描述如下: 进入java服务容器进入用户目录下的nacos&a…...
【matlab程序】matlab给风速添加图例大小
【matlab程序】matlab给风速添加图例大小 clear;clc;close all; % load 加载风速数据。 load(matlab.mat) % 加载颜色包信息 gray load(D:\matlab_work\函数名为colormore的颜色索引表制作\R_color_txt\R_color_single\gray89.txt); brown load(D:\matlab_work\函数名为color…...
微服务学习|初识MQ、RabbitMQ快速入门、SpringAMQP
初识MQ 同步通讯和异步通讯 同步通讯是实时性质的,就好像你用手机与朋友打视频电话,但是,别人再想与你视频就不行了,异步通讯不要求实时性,就好像你用手机发短信,好多人都能同时给你发短信,你…...
【开源】基于Vue.js的固始鹅块销售系统
项目编号: S 060 ,文末获取源码。 \color{red}{项目编号:S060,文末获取源码。} 项目编号:S060,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固…...
三分钟解决内存焦虑:Mem Reduct实时内存管理工具深度解析
三分钟解决内存焦虑:Mem Reduct实时内存管理工具深度解析 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct …...
IsaacGym力传感器实战:从初始化到数据读取的保姆级避坑指南
IsaacGym力传感器实战:从初始化到数据读取的保姆级避坑指南 在机器人仿真开发中,力传感器的数据采集往往是实现物理交互的关键环节。作为NVIDIA推出的高性能机器人仿真平台,IsaacGym凭借其GPU加速能力为开发者提供了强大的工具链,…...
InteractiveHtmlBom:3大核心价值重塑PCB设计团队的BOM管理战略
InteractiveHtmlBom:3大核心价值重塑PCB设计团队的BOM管理战略 【免费下载链接】InteractiveHtmlBom Interactive HTML BOM generation plugin for KiCad, EasyEDA, Eagle, Fusion360 and Allegro PCB designer 项目地址: https://gitcode.com/gh_mirrors/in/Inte…...
网络初级第二次作业(静态路由配置)
一、网络拓扑图二、配置路由器改名和配置路由器:以AR1为例三、配置 PC端的网络参数:为PC1和PC2配置静态IP地址:四、配置静态路由为四个路由器分别配置静态路由:以AR3和AR4为例五、Ping测试...
T113平台Tina5.0(OpenWrt)开发实战:编译指令深度解析与高效编译指南
1. T113平台与Tina5.0开发环境概览 T113-S3/S4是全志科技推出的高性能嵌入式处理器,采用Cortex-A7双核架构,主频可达1.2GHz。这颗芯片有个特别实用的设计——内置了RISC-V协处理器(仅T113-S4支持),在处理特定任务时能显…...
Tabula:从PDF数据囚笼到结构化自由的革命性解放工具
Tabula:从PDF数据囚笼到结构化自由的革命性解放工具 【免费下载链接】tabula Tabula is a tool for liberating data tables trapped inside PDF files 项目地址: https://gitcode.com/gh_mirrors/ta/tabula 在信息爆炸的时代,PDF文档已成为数据交…...
PyBroker:构建机器学习驱动的量化交易系统
PyBroker:构建机器学习驱动的量化交易系统 【免费下载链接】pybroker Algorithmic Trading in Python with Machine Learning 项目地址: https://gitcode.com/gh_mirrors/py/pybroker 在算法交易的世界中,数据驱动的决策正逐渐取代传统的主观判断…...
3步解决iCloud激活锁难题:AppleRa1n工具完全指南
3步解决iCloud激活锁难题:AppleRa1n工具完全指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否遇到过这样的情况:购买了一台二手iPhone,却发现设备被iCloud…...
mPLUG-Owl3-2B多模态工具:数据结构优化实战
mPLUG-Owl3-2B多模态工具:数据结构优化实战 1. 为什么需要优化数据结构 当你开始用mPLUG-Owl3-2B处理真实项目时,可能会遇到这样的情况:加载大量图片时程序变慢,处理视频时内存占用飙升,或者检索特定内容时需要等待很…...
崩坏星穹铁道全自动助手终极指南:如何让三月七小助手帮你节省90%游戏时间
崩坏星穹铁道全自动助手终极指南:如何让三月七小助手帮你节省90%游戏时间 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否厌倦了《崩坏:…...

