响应式网站开发需要的条件,搜索引擎是指什么,微信公众号分销系统,企业咨询顾问在上一篇文章中#xff0c;详细讲述了如何在vps上搭建ftp服务#xff0c;参考我的文章本地访问远程vps中的sqlite数据库中的内容之#xff08;一#xff09;建立并访问ftp服务器-CSDN博客
本篇记录一下如何在本地访问远程vps中的sqlite数据库。
#xff08;一#xff0…在上一篇文章中详细讲述了如何在vps上搭建ftp服务参考我的文章本地访问远程vps中的sqlite数据库中的内容之一建立并访问ftp服务器-CSDN博客
本篇记录一下如何在本地访问远程vps中的sqlite数据库。
一首先使用如下命令给vps搭建python3的环境
sudo yum update -y
sudo yum install -y python3 python3-pip
安装好以后使用which python3查看一下 安装 web.py 框架
pip3 install web.pyCentOS 7上是自带sqlite3的所以一般不需要安装。 二远程访问sqlite
既然无法远程直接访问sqlite那么就通过web api接口来访问。
思路如下
本地----web api----远程vpsapi读取sqlite
将本地编写好的get_vps_sqlite.py和数据库proxy.db一并通过Filezilla上传到vps的同一目录中。
get_vps_sqlite.py代码如下
import web
import sqlite3
import jsonurls (/, Index
)data_path proxy.db
app web.application(urls, globals())class Index:def GET(self):try:params web.input(idNone, countryNone, limitNone)conn sqlite3.connect(data_path)conn.row_factory sqlite3.Rowcursor conn.cursor()sql SELECT * FROM proxysconditions []values []# 根据参数拼接查询条件if params.id:try:record_id int(params.id)conditions.append(id ?)values.append(record_id)except ValueError:return json.dumps({error: 参数 id 必须是整数}, ensure_asciiFalse)if params.country:# 模糊匹配或者精确匹配都可以这里示范精确匹配conditions.append(country ?)values.append(params.country)if conditions:sql WHERE AND .join(conditions)# 处理limit参数if params.limit:try:limit int(params.limit)if limit 0:return json.dumps({error: 参数 limit 必须是正整数}, ensure_asciiFalse)sql LIMIT ?values.append(limit)except ValueError:return json.dumps({error: 参数 limit 必须是整数}, ensure_asciiFalse)cursor.execute(sql, tuple(values))rows cursor.fetchall()result [dict(row) for row in rows]web.header(Content-Type, application/json; charsetutf-8)return json.dumps(result, ensure_asciiFalse)except Exception as e:web.ctx.status 500 Internal Server Errorreturn json.dumps({error: str(e)}, ensure_asciiFalse)finally:if conn in locals():conn.close()if __name__ __main__:import syssys.argv.append(0.0.0.0:8383)app.run()放开8383端口
sudo firewall-cmd --zonepublic --add-port8383/tcp --permanent
sudo firewall-cmd --reload
检查是否放行成功
sudo firewall-cmd --list-ports三 在远程vps上运行get_vps_sqlite.py
进入项目目录(这个目录也是我的ftp目录)
cd /home/xiaoqinglong/files运行脚本注意保持后台运行建议用 nohup
nohup python3 get_vps_sqlite.py output.log 21 四 本地测试访问
在本地电脑的浏览器中输入如下地址成功。
http://vps的ip地址:8383/ http://vps的ip地址:8383/?id12 http://vps的ip地址:8383/?countryCNlimit5
五安全建议
如果你只是自己使用这个 API可以只允许你本地的 IP 访问 8383端口在vps控制台命令中输入
sudo firewall-cmd --zonepublic --add-rich-rule
rule familyipv4 source address你的本地公网IP/32 port protocoltcp port8383 accept --permanent
sudo firewall-cmd --reload 这样就可以实现本地访问远程vps中的sqlite数据库了。
通过完善vps中的xxx.py配合上青龙界面可以实现定时操作数据库。而本地则什么都不需要做只需要在浏览器输入网址访问即可非常方便。