我开始为我正在开发的新网站创建API.
我原本想把它变成一个普通的REST API,但我一直在想一下,如果能够在一批中编译多个客户端库,那么它将有多酷.
Thrift是公共API,套接字等所有可行的选择,还是应该坚持使用REST?
如果REST什么是创建多个客户端库的最佳方法,或者我只需要潦倒并实际编写它们?
如果是Thrift,我会编译库并只提供下载链接或简单地给开发人员提供.thrift文件来生成自己的库吗?
注意:它仍然是一个小网站,所以我只为API创建Thrift规范文件.
我最近决定用Python和PySide编写我的第一个应用程序.但我有一个问题,希望你们能提供帮助.
Python不断提出删除"内部C++对象"的异常.根据我对Python的有限经验,我认为我的对象超出范围并被Python的垃圾收集器删除.
那么我将如何使用PySide在Python中设计多页面应用程序.并能够保留我的QWidgets,以便我可以再次显示该页面.
谢谢你的时间.
更新(代码)
instancing = None
def instance():
global instancing
if instancing == None:
instancing = WPZKernel()
return instancing
class WPZKernel:
win = None
mainscreen = None
def mainwindow(self):
if self.win == None:
self.win = GMKMainWindow(self)
return self.win
def main_panel(self):
if self.mainscreen == None:
self.mainscreen = GMKMainScreen(self.mainwindow())
return self.mainscreen
Run Code Online (Sandbox Code Playgroud)
然后,我会通过调用以下方式访问主面板:
import kernel
kernel.instance().main_panel()
Run Code Online (Sandbox Code Playgroud)
那么我是以错误的方式来做这件事的吗?
我写了这块Linq来处理CROSS Join就像数据库在多个列表之间一样.
但由于某些原因,当任何一个列表超过3000时,它会非常慢.我会等30秒?这些列表可能会非常大.
此查询循环使用来自ColumnDataIndex的其他列表数据的每个关系.
任何建议?
更新** - 数据被插入到从配置的源中预先构建的普通列表中.这一切都在记忆中.
RunningResult[parameter.Uid] = (from source_row in RunningResult[parameter.Uid]
from target_row in ColumnDataIndex[dest_key]
where GetColumnFromUID(source_row, rel.SourceColumn) == GetColumnFromUID(target_row, rel.TargetColumn)
select new Row()
{
Columns = MergeColumns(source_row.Columns, target_row.Columns)
}).ToList();
Run Code Online (Sandbox Code Playgroud)
2个额外功能:
MergeColumns:从2个项目中获取列并将它们合并为单个数组.
public static Columnn[] MergeColumns(Column[] source_columns, Column[] target_columns)
{
Provider.Data.BucketColumn[] new_column = new Provider.Data.BucketColumn[source_columns.Length + target_columns.Length];
source_columns.CopyTo(new_column, 0);
target_columns.CopyTo(new_column, source_columns.Length);
return new_column;
}
Run Code Online (Sandbox Code Playgroud)
GetColumnFromUID:返回与给定的列uid匹配的Item中的Column的值.
private static String GetColumnFromUID(Row row, String column_uid)
{
if (row != null)
{
var dest_col = row.Columns.FirstOrDefault(col => …
Run Code Online (Sandbox Code Playgroud) 我一直在开发在线扑克游戏.但我一直在撞墙.我想在系统中实施奖励,但我希望它们是动态的.意思是我不想重新编译我想要添加的每个奖项.
我曾考虑过为每个奖项使用Python代码.然后,当服务器检查用户是否有资格获得奖励时,它会运行带有Jython的python脚本(服务器使用Java和Netty NIO),如果函数返回某个值,我将奖励授予用户.哪个可以工作但是可能有更高效的技术,每次我需要检查用户是否获得奖励时,不会强迫我运行数百个python脚本.
什么时候进行这些检查的最佳时间?我已经考虑了一个钩子系统,我将指定钩子([onconnect] [ondisconnect] [chatmessage.received]).哪个也可以工作,但感觉有点粗糙,我仍然必须从数据库运行所有脚本.
希望你能在这里帮助我,我已经整天试着把这个问题搞清楚了.
我有一个朋友系统和一些用户,他们可以互相添加,并且工作完美,但问题是他们可以互相添加多一次..
继承我的脚本,检查他们是否已经是朋友..
但它不起作用:(
<?
// connect Databasen
include('connect.php');
//hvis get bruger ikke er tom
if (!empty($_GET["bruger"])) {
//tjeker om venner er anøsgt i forvejen
$bruger = $_SESSION['username'];
$ven = $_GET["bruger"];
$tjek = mysql_query("SELECT * FROM venner WHERE username='$bruger' AND ven='$ven'");
if ($tjek) {
//indsæt
mysql_query("INSERT INTO venner VALUES('','$bruger','$ven','','nej')");
echo "venskab er ansøgt";
exit;
}
else {
echo "Du har allerede ansøgt";
}
}
?>
Run Code Online (Sandbox Code Playgroud) 快一点:
string firstline;
if (firstline == null) {
System.Console.WriteLine("String empty!");
}
Run Code Online (Sandbox Code Playgroud)
理论上如果"firstline"中没有值,控制台应该把"String empty!"?