我正在致力于一个物联网项目,它就像是学校和大学的智能考勤和无现金支付系统。我使用Raspberry Pi3作为我的客户机,DigitalOcean托管PostgreSQL和核心Django项目。除了树莓皮,我正在使用EM-18射频识别阅读器和R305指纹阅读器。现在,到目前为止,我已经构建了一个CLI实用程序来使用project,但是对于一个不太熟悉Linux或shell的人来说,这并不方便。在
现在我的问题在于我当前的代码逻辑。例如,如果我想将学生信息连同他们的RFID/指纹信息一起添加到数据库中,我首先扫描分配给他们的RFID标签。检查该标记是否已在数据库中,如果没有,则询问其信息。在这一步之后,我再次要求他们再次点击同一张卡来注册他们的指纹。所有这些过程在CLI上都没有任何问题。我不知道如何让操作员知道现在要执行哪个步骤。虽然我用Django构建了一个web界面,它既不友好也不交互式。我想我必须使用JSON/AJAX来实现这一点,但我不知道如何实现。在
请不要把这当作一个答案来读,而更像是一个较长的评论;)
因此,首先阅读MVC概念(例如:https://djangobook.com/model-view-controller-design-pattern/)以了解web接口如何与其余代码交互。在
传统的django方式是
model
创建一个form
(在forms.py
)中。在views.py
中的表单输入当你想用AJAX做这件事的时候,这需要做一些额外的工作,但是结果是值得的。(例如:How to POST a django form with AJAX & jQuery)
您将调用您首先在
urls.py
文件(path('checkForm', views.checkForm, name='checkForm'),
在django 2.0中)中初始化的特定urlurl指向在
views.py
中定义的名为checkForm
的函数(与本例中的url路径相同,但您可以随意调用它)。在这个函数中,您可以编写python代码或从那里调用函数来执行db请求、验证等。 返回包含代码结果的响应。在success: function(data, status) { $('#whatever').html(data); alert("whatever"); }
“数据”是服务器的响应。 我希望我给了你一个正确方向的提示。如果你被困在什么地方,请问一下。在
另外,我不知道如何通过http发送指纹数据,请检查是否有库。在
这是错误代码,请去掉x。第一个x是一个错误的变量名,第二个是完全冗余的。 您还需要将
print
语句转换为logs
或其他任何格式,但是打印不会让您走得太远。在我终于明白了。我把这个过程分成多个部分。然后我调用AJAX来访问它。在
我的
urls.py
文件:我的
^{pr2}$views.py
文件:我的
tag.html
文件:所有这些现在都如期进行。在
所以,
/tag/
是主要的切入点。现在在tag.html
中,我对/scan_tag/
使用jQueryget
方法。它将返回RFID标签号。然后我在/check_tagid/
上调用AJAX,它将根据学生是否在数据库中而定。在相关问题 更多 >
编程相关推荐