小编Jac*_*ian的帖子

无法在第一次点击事件时提交表单

好吧,我花了几个小时研究这个问题并扫描了整个 stackoverflow,但仍然不知道该怎么办。但真正让我抓狂的是,如此微不足道、世界上最简单的事情却行不通。所以,我现在拥有的是一个带有输入和按钮的表单:

<form id="frm" action="/accent/login/enter/">
    {% csrf_token %}
    <div draggable="true" id="panel" class="panel" title="">
        <input id="login" name="login" type="text" placeholder="" class="required" /> <br/>
        <input id="pswd" name="pswd" type="password" placeholder="" class="required"  /> <br/>
        <button id="btn" value="">ENTER</button>            
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

我有这个代码应该发送表单:

$('#btn').one("click",function(){  // prevent from multiple submits
    $('#frm').validate({ // validate the form before submission
        ...general stuff: rules, messages, etc
        submitHandler:function(form){
            $('#frm').submit(function(e){ //submitted on the second click. why???
                ...prepare parameters for ajax call
                $.ajax({
                    type:'POST',
                    ...general stuff
                });
                e.preventDefault();
            })
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

问题是,当用户第一次单击“提交”按钮时,表单不会提交,但是,如果他或她第二次单击它,则可以正常提交。我无法理解 jquery 中实现的这种行为背后的逻辑。此外,我应该说,我还尝试过许多其他技巧,例如:

form.submit(... …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

如何手动使用 make_password 和 check_password?

我尝试手动使用make_passwordcheck_password运行。我在我的一个观点中这样做(仅出于测试原因):

#iteration one:
def enter(request):
    res = make_password('admin')
    return HttpResponse(res)
Run Code Online (Sandbox Code Playgroud)

所以,当我去enter页面时,我看到了这个东西:

pbkdf2_sha256$15000$fmX24ZPCKBdA$fvpfYMacxOi44QFDeLLfRRUN85RweMJTfxxoC+YS2XE=
Run Code Online (Sandbox Code Playgroud)

假设我将此输出存储在一个文本文件中(同样出于测试原因)passwords.txt,格式如下:

1    pbkdf2_sha256$15000$fmX24ZPCKBdA$fvpfYMacxOi44QFDeLLfRRUN85RweMJTfxxoC+YS2XE= 
2    ....hash for another user   
Run Code Online (Sandbox Code Playgroud)

在第二次迭代中,我想检查我的密码(让它存储在请求变量中的 GET['pass'] 中),但不知道如何:

def login(request):
    # How to use check_password here to check against data stored in
    # passwords.txt
    # it should either output False
    # or an id, like 1 in our test case for password 'admin'.
Run Code Online (Sandbox Code Playgroud)

而且我想再次强调,我想手动使用它,只是为了理解这些功能背后的逻辑。所以,Django此刻我不想让我为我做这件事。

python django

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

PHPExcel_Reader_HTML生成空文件

我尝试使用phpexcel库将最简单的html表转换为excel,但无济于事.现在,我这样做:

require_once ('/PHPExcel/Classes/PHPExcel.php');
file_put_contents('tmp.html','<table border="1"><tr><td>123</td></tr></table>');
$objReader = new PHPExcel_Reader_HTML;
$objPHPExcel = $objReader->load('tmp.html');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("myExcelFile.xlsx");
Run Code Online (Sandbox Code Playgroud)

当我终于打开时myExcelFile.xlsx,我看到它是空的,而tmp.html不是.我使用的PHPExcel_1.8.0是该库的版本.

编辑

感谢马克,它现在正在运作.但是,我看到,有些困难的html无法正确呈现.像这个表头一样,例如:

<Table style="border-collapse: collapse;" cellspacing="0" cellpadding="4"><THead><TR><TH style="background-color:#F8F8F8; border:1px solid #CCCCCC ; width:100px "  rowspan="5" >1</TH><TH style="background-color:#F8F8F8; border:1px solid #CCCCCC ; width:100px "  rowspan="5" >2</TH><TH style="background-color:#F8F8F8; border:1px solid #CCCCCC ; width:100px "  rowspan="5" >3</TH><TH style="background-color:#F8F8F8; border:1px solid #CCCCCC "  colspan="7"  rowspan="1" >4</TH><TH style="background-color:#F8F8F8; border:1px solid #CCCCCC ; width:100px "  rowspan="5" >16</TH></TR><TR><TH style="background-color:#F8F8F8; border:1px solid …
Run Code Online (Sandbox Code Playgroud)

php phpexcel

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

无法在Fortran子例程+笔记本中更改和返回值

我有一个简单的fortran子程序(仅用于测试python-fortran接口).它看起来像这样:

subroutine sum2(x,y,z)
 real(kind=8),intent(in)::x,y
 real(kind=8),intent(inout)::z
 z = x + y
 print *, "sum is ", z
end subroutine sum2
Run Code Online (Sandbox Code Playgroud)

编译后f2py我去python并执行以下操作:

>>> import sum2
>>> x = 1.0
>>> y = 2.0
>>> z = 0.0
>>> sum2.sum2(x,y,z)
sum is 3
>>> z
0.0
Run Code Online (Sandbox Code Playgroud)

因此,即使z指定为inout,其值也不会被函数更改.我需要知道原因.另一个问题涉及notebook.如果我sum2在那里导入并运行sum2.sum2(x,y,z)我甚至看不到消息sum is ....那么,问题是,如果可以在笔记本中调用fortran子程序吗?

编辑

有一个合理的评论,在我的例子中,我使用了不可变的数据类型.所以,我决定改变它,但我仍然有同样的问题.所以,我的新fortran子程序看起来像这样:

subroutine arr(x)
    real(kind=8),dimension(1)::x
    x(1) = 2 ! new value
    print *, "x[0] …
Run Code Online (Sandbox Code Playgroud)

python fortran f2py

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

如何进行不基于用户模型的自定义身份验证

我的身份验证方案需要一些灵活性.通过这种灵活性,我的意思是我不想完全依赖用户模型或任何模型.在伪代码中我想得到这种逻辑:

class MyCustomAuthentication(authentication.BaseAuthentication)
    def authenticate(self, request):
        email = request.META.get('X_EMAIL')
        password = request.META.get('X_PASSWORD')
        # Here I want to connect to my database
        # then make a query and verify if there exists a row that
        # corresponds to email and password
        # If it exists, then authentication is passed
        # if not, then it is not passed

@api_view()
@authentication_classes((MyCustomAuthentication))
def items(request):
    return Response({"message":"Hello world!"})
Run Code Online (Sandbox Code Playgroud)

所以,如你所见,我不想依赖ORM,我只想用自己的友好sql来做自己的整个事业.但我不知道如何以及我应该从认证中返回什么.

python authentication django django-rest-framework

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

使用 Python 时“ON DELETE CASCADE”不起作用

在这里,我提供了一个完全可重现的代码,它演示了整个问题。问题是,当我从“父”表中删除行时,不会删除“子”表中的相应行,即使它们具有ON DELETE CASCADE指定的外键。所以这是代码:

>>> import sqlite3
>>> cnx = sqlite3.connect("mytest.db")
>>> cursor = cnx.cursor()
>>> cnx.execute("BEGIN")
<sqlite3.Cursor object at 0x7f0ab0923490>
>>> cursor.execute("CREATE TABLE test_table (id integer)")
<sqlite3.Cursor object at 0x7f0ab0923420>
>>> cursor.execute("CREATE UNIQUE INDEX id_primary ON test_table(id)")
<sqlite3.Cursor object at 0x7f0ab0923420>
>>> cursor.execute("INSERT INTO test_table (id) VALUES (1),(2),(3)")
<sqlite3.Cursor object at 0x7f0ab0923420>
>>> cursor.execute("CREATE TABLE test_table_2(id_fk integer, txt text,  FOREIGN KEY (id_fk) REFERENCES test_table(id) ON DELETE CASCADE)")
<sqlite3.Cursor object at 0x7f0ab0923420>
>>> cursor.execute("INSERT INTO test_table_2 (id_fk, txt) VALUES …
Run Code Online (Sandbox Code Playgroud)

python sqlite

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

沿线串要素的多个文本标签

是否可以OpenLayers 3创建一个文本标签,根据比例,沿着线串特征多次克隆?就像是:

在此输入图像描述

在此输入图像描述

在这里您可以看到,当我们更改比例标签时,“IX Corps Blvd”出现两次。我们如何实现这一点?

javascript gis openlayers-3

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

如何绑定fieldset值

对于一些奇怪的原因,我无法为一个绑定值字段集checkboxToggle属性设置为true.所以,它的配置如下:

xtype: "fieldset",
title: "Box",
checkboxName: "bounding_box",            
checkboxToggle: true,
bind: {
    collapsed: "{!rec.bounding_box}"
} // results in error message: TypeError: this[c._config.names.set] is not a function
// bind: "{!rec.bounding_box}" does not work either
Run Code Online (Sandbox Code Playgroud)

所以,上面的代码不起作用.但是,同样的技术适用于简单的checkbox字段:

xtype: "checkbox",
fieldLabel: "Show label",                
name: "show_label",
bind: "{rec.show_label}"
Run Code Online (Sandbox Code Playgroud)

这有什么问题,我该如何解决?

javascript extjs

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

ExtJS材料主题不起作用

我正在使用ExtJS 6.2.1.我面临的问题是,材质主题打破了我的页面的整个布局,它只包含一个窗口小部件.这就是我在页面中包含材质主题的方法:

<link rel="stylesheet" href="/ext-6.2.1/build/modern/theme-material/resources/theme-material-all.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

这就是它的样子:

在此输入图像描述

但是,如果我切换到triton主题,如下:

<link rel="stylesheet" href="/ext-6.2.1/build/classic/theme-triton/resources/theme-triton-all.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

一切都开始起作用了:

在此输入图像描述

那么,这有什么问题,我该如何解决?

javascript extjs

0
推荐指数
1
解决办法
1032
查看次数

参数包和函数声明

我有三个文件 - lib.h带有函数声明,lib.cpp带有实现和main.cpp入口点.他们的内容就像:

//lib.h
#pragma once

void func1();
void func2();
void funcN();

//lib.cpp
#include "lib.h"

void func1(){}
void func2(){}
void funcN(){}

//main.cpp
#include "lib.h"

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我这样编译它:

$ g++ main.cpp lib.cpp
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是现在我想在我的一个函数中使用参数包.像这样:

//change in lib.cpp

void funcN(int i, auto... j) {

}
Run Code Online (Sandbox Code Playgroud)

我分别改变了lib.h和main.cpp:

//change in lib.h
void funcN(int, auto...);

//change in main.cpp

int main() {
    funcN(1, 2);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但现在,当我编译它时

$ g++ main.cpp lib.cpp
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

main.cpp :(.text + 0x14):未定义引用`void funcN(int,int,...)'collect2:error:ld返回1退出状态 …

c++

0
推荐指数
1
解决办法
154
查看次数