小编kra*_*itz的帖子

如何在Bottle中处理JSON请求?

我需要从JSON获取数据,由Ajax从客户端传输.基本上我使用过这样的东西:

@route('/ajax')
def serve_ajax():
    return main.parse_request(json.dumps(dict(request.GET)))
Run Code Online (Sandbox Code Playgroud)

其中main.parse_request是一个函数,它包含一些逻辑来处理JSON中的变量(它是我们游戏引擎的主要过程).

所以问题是我无法通过转换request.GETdict 来正确处理JSON变量:因为我已经编写过的方式无法传递嵌套对象和数组.此外,每个值都有一个字符串类型,而我需要整数类型的整数类型和其他的字符串类型.

或者,因为我可以获取原始查询字符串(by request.query_string),如何将查询字符串转换为原始JSON对象?

python json bottle

14
推荐指数
2
解决办法
2万
查看次数

如何在Sqlite 3.7.4中使ON DELETE CASCADE工作?

我多次检查了功能列表,似乎级联应该可以工作.当我执行这个python脚本时:

#!/usr/bin/env python3
import sqlite3

print(sqlite3.sqlite_version)

con = sqlite3.connect(':memory:')

a = "create table a (id integer primary key, name text)"
con.execute(a)

b = "create table b (id integer primary key, r integer, foreign key(r) references a(id) on delete cascade)"
con.execute(b)
con.commit()

a = "insert into a (name) values (\"abc\")"
con.execute(a)
con.commit()

print(con.execute("select * from a").fetchall())

a = "insert into b (r) values (1)"
con.execute(a)
con.commit()

print(con.execute("select * from b").fetchall())

a = "delete from a where id=1"
con.execute(a)
con.commit()

print(con.execute("select * …
Run Code Online (Sandbox Code Playgroud)

python sql sqlite

8
推荐指数
1
解决办法
3936
查看次数

如何在android上使用libudev

作为低级监视应用程序的一部分,需要监视sysfs中的一些更改我应该使用udev接口而不是inotify.很明显,大多数Android设备以及我真正需要运行此应用程序的所有设备都使用udev来枚举设备和应用策略.从C-application与udev交互的标准方法是使用libudev(libudev.h),但/ lib目录中没有libudev.so,根本没有include目录.所以我需要获得这个库的ARM端口或者在这里做一些解决方法.请帮助我解决这个问题,因为我不擅长交叉编译和libudev特定的问题.

注意:我在所有设备上都具有root访问权限,我将运行此应用程序.

android cross-compiling udev

8
推荐指数
0
解决办法
1975
查看次数

如何确定谁发出信号?

我在PyQt上开发了一个应用程序,我喜欢信号槽模型,但有没有办法确定信号的发射器?我希望有一种方法,因为它可以编写更多通用代码而无需为每个类似信号定义大量插槽.

python pyqt

5
推荐指数
1
解决办法
1万
查看次数

如何只允许隧道连接到端口?

我想让一个git-daemon通过一个永久的ssh隧道.我完成了这项任务.如何阻止任何与GIT_DAEMON端口的远程无连接连接(在我的情况下为9418)?

我已经在iptables中尝试了简单的规则(阻止除localhost之外的所有内容):

$ iptables -A INPUT -p tcp -d ! localhost --destination-port 9418 -j DROP
Run Code Online (Sandbox Code Playgroud)

但它也会阻塞隧道(因为它节省了源IP地址).如果我还有一个主机用于防火墙,可以通过阻止与该端口的任何远程连接来完成,但我需要这个主机来完成这项工作.

隧道以两种方式之一创建:

对于Windows:

plink.exe -N -i <key> -L 127.0.0.1:9418:192.168.1.69:9418 tunnel@192.168.1.69
Run Code Online (Sandbox Code Playgroud)

对于Linux:

ssh -N -i <key> -L 127.0.0.1:9418:192.168.1.69:9418 tunnel@192.168.1.69
Run Code Online (Sandbox Code Playgroud)

linux ssh port tunnel

5
推荐指数
2
解决办法
1450
查看次数

标签 统计

python ×3

android ×1

bottle ×1

cross-compiling ×1

json ×1

linux ×1

port ×1

pyqt ×1

sql ×1

sqlite ×1

ssh ×1

tunnel ×1

udev ×1