It really depends on the use of the information you display, if you do not need this number to be in real time, then you can choose a regular AJAX poll once every X seconds, as indicated in the zwer comment.
Now, if you need this number to be in real time, you should look for django web ports and channels, itβs very simple to set up a code base that does what you want.
Assuming you installed django feeds and configured your settings .
consumers.py routing.py, - ( views.py urls.py, websocket).
consumers.py
from channels import Group
from channels.auth import channel_session_user_from_http, channel_session_user
@channel_session_user_from_http
def ws_add(message):
message.reply_channel.send({
"accept": True,
})
Group("rfid-group").add(message.reply_channel)
@channel_session_user
def ws_message(message):
@channel_session_user
def ws_disconnect(message):
Group("rfid-group").discard(message.reply_channel)
routing.py
from channels.routing import route
from .consumers import ws_message, ws_add, ws_disconnect
routing_routing = [
route("websocket.connect", ws_add),
route("websocket.receive", ws_message),
route("websocket.disconnect", ws_disconnect),
]
front-end websocket:
<script>
socket = new WebSocket("ws://" + window.location.host);
socket.onmessage = function(e) {
console.log("Message received");
console.log(e.data);
}
</script>
-, "rfid-group", , , , .
, rfid, , view, RFID HTTP-.
from django.http import HttpResponse
from channels import Group
def rfid_processor(request):
'''
Consider authenticating your rfid_num producer to prevent
someone messing with your api
'''
rfid_num = request.GET.get("rfid", "")
if rfid_num:
Group("rfid-group").send({"text": rfid_num})
return HttpResponse(status=200)
return HttpResponse(status=500)
URL:
from app.views import rfid_processor
urlpatterns = [
url(r'^rfid/$', rfid_processor),
]
, django, -, RFID, .
, .