小编Dok*_*r J的帖子

Tkinter按钮命令在运行程序时激活?

我正在尝试制作一个构建检索表单,并且似乎有按钮的问题......我是Python/tkinter GUI编程(以及一般的GUI编程)的新手,并借用了Hello World应用程序的框架,并且sorta建立了这个.

在下面的代码中,我设置了Browse按钮的"command"选项,在单击时调用我的类的内部get_dir()函数.但是,只要我尝试运行应用程序,就会调用get_dir()函数,并提示我选择一个目录.任何想法为什么会发生这种情况,以及我能做些什么才能使其表现正常?

from Tkinter import *
import tkFont
from tkFileDialog import askdirectory

class App:

    def __init__(self, master):

        fontHead = tkFont.Font(family="Arial", size=10, weight=tkFont.BOLD)
        fontBold = tkFont.Font(family="Arial", size=8, weight=tkFont.BOLD)
        fontReg =  tkFont.Font(family="Arial", size=8)

        frameN = Frame(master)
        frameN.grid(row=0,padx=5,pady=5)

        frameXBH = Frame(frameN)
        frameXBH.grid(row=0,columnspan=5,padx=5)

        Canvas(frameXBH,borderwidth=0,relief="flat",height=1,width=20,background="#cccccc").grid(row=0)
        Label(frameXBH, text="Xbox 360",font=fontBold,width=9).grid(row=0,column=1)
        Canvas(frameXBH,borderwidth=0,relief="flat",height=1,width=440,background="#cccccc").grid(row=0,column=2,sticky="WE")

        Label(frameN, text="Destination Path:",font=fontReg).grid(row=1,sticky="W")
        xbPath = Entry(frameN,width=30,font=fontReg)
        xbPath.grid(row=1,column=1,sticky="W")
        xbBrowse = Button(frameN,text="Browse...",font=fontReg,command=self.get_dir(xbPath))
        xbBrowse.grid(row=1,column=2,sticky="W")
        xbRel = Checkbutton(frameN,text="Release",font=fontReg)
        xbRel.grid(row=1,column=3,sticky="W")
        xbShip = Checkbutton(frameN,text="Ship",font=fontReg)
        xbShip.grid(row=1,column=4,sticky="W")

        Canvas(frameN,borderwidth=1,relief="groove",width=550,height=0).grid(row=2,columnspan=5,pady=10)

        # SAVE AND CANCEL

        btnSave = Button(frameN,text="Save",width=10)
        btnSave.grid(row=3,column=3,sticky="E")

        btnCancel = Button(frameN,text="Cancel",width=10)
        btnCancel.grid(row=3,column=4,sticky="W")

    def get_dir(self,box): …
Run Code Online (Sandbox Code Playgroud)

python user-interface tkinter

17
推荐指数
3
解决办法
3万
查看次数

有没有办法在Windows的任务栏中创建Python控制台应用程序?

有没有办法让我的Python控制台应用程序的窗口在Windows任务栏中闪存,以引起用户的注意?

我的脚本将仅在相对同质的Windows环境中运行,因此我不关心检测特定API是否存在,或者解决方案是否是跨平台的(当然跨平台更适合将来参考. ..但我不需要这个应用程序).

python windows taskbar

9
推荐指数
2
解决办法
3404
查看次数

是否将用户输入转换为足以清理它的整数?

引用这个SO答案:

提交的所有内容最初都被视为字符串,因此强制将已知数字数据转换为整数或浮点数使得清理快速且无痛.

这是我独立提出的一种快速和脏查询的清理方法(从数字ID中查找表中的名称); 插入查询的唯一变量是ID,我知道ID应该大于零且小于255,所以我的清理如下(还有一点点验证):

$id = (int)$_REQUEST['id'];
if ($id < 1 || $id > 255) errmsg("Invalid ID specified!");
$name = $DB->query("SELECT name FROM items WHERE id=${id}")->fetch_all()[0][0];
Run Code Online (Sandbox Code Playgroud)

这是否足以防止SQL注入攻击或基于用户指定值的任何其他恶意攻击$id,还是仍然可以被利用?

注意:ID /名称不是"敏感",所以如果某些输入无意中转换为"1"或其他有效的ID值,我不在乎.我只想避免沿着小鲍比表的线条滑行.

php mysqli casting sql-injection

4
推荐指数
2
解决办法
899
查看次数

使用.htaccess"欺骗"404找不到错误

我有.htaccess当前设置为重写任何没有句点或斜线的东西到等效的.php扩展名(所以"foo"内部拉出"foo.php")通过以下方式:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !(.*)\.php
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/.]+)$ $1.php [L,NS]
Run Code Online (Sandbox Code Playgroud)

但是,我想直接请求"foo.php"返回404,就好像文件不存在一样(就像有人试过"foo.asp"或"foo.blargh").我知道有[F]和[G]标志,但我不想要"禁止"(403)或"消失"(410),因为那些是不存在的文件返回的结果(404).

有没有办法做到这一点?

更新1

我试过了

RewriteCond %{REQUEST_FILENAME} \.php$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.php\ HTTP/
RewriteRule ^(.*)$ /error.php?e=404 [R=404,L,NS]
Run Code Online (Sandbox Code Playgroud)

哪个有效...直到我尝试使用ErrorDocument处理程序.假设我的文档根目录中有"error.php",那么ErrorDocument 404 /error?e=404(我也尝试过使用error.php等)的任何内容都会反复出错

未找到

在此服务器上找不到请求的URL /foo.php.

此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误.

...但仅在尝试访问实际存在的.php页面时(例如foo.php); 任何访问实际不存在的页面的尝试(因此不会触发我的第二次重写规则)都会转到ErrorDocument处理程序指定的页面.

.htaccess mod-rewrite apache2 http-status-code-404

2
推荐指数
1
解决办法
4550
查看次数