我有一个由Django 中的views.py 生成的python 列表,我想将其传递给HTML 模板中的javascript。我似乎无法将其作为数组放入 javscript 中...我需要评估列表/数组是否包含某些数字,但它是以字符串的形式出现的。
我将列表传递到我的 HTML 模板,如下所示:
def get_context_data(self, **kwargs):
context = super(dashboardView, self).get_context_data(**kwargs)
mylist = [10,22,33,45]
context['mylist'] = mylist
return context
Run Code Online (Sandbox Code Playgroud)
当我使用时:
<h1 id = "list"> {{mylist}}</h1>
Run Code Online (Sandbox Code Playgroud)
它在浏览器上显示为 [10,22,33,45]
然后在我的模板中我使用 javascript 我有:
var mylist = document.getElementById("list").innerHTML;
for(i = 0; i < mylist.length; i++){
console.log(mylist[i])
};
Run Code Online (Sandbox Code Playgroud)
这将返回到控制台:
'
[
1
0
,
2
2
........
Run Code Online (Sandbox Code Playgroud)
我想:
10
22
33
45
Run Code Online (Sandbox Code Playgroud)
我尝试在 python 中转换为 JSON,并在 javascript 中解析它,但似乎无法将此字符串转换为数组,或者不断收到错误。这里有什么最佳方法的想法吗?
关于这些模型:
class Projects(models.Model):
projectDescription = models.CharField(max_length=50,blank=True,null = True,)
status = models.IntegerField(choices = Status_CHOICES, default = 4)
projectOwner = models.ForeignKey(staff, on_delete=models.CASCADE, blank=True,null = True,)
class Updates(models.Model):
project = models.ForeignKey(Projects, on_delete=models.CASCADE)
update = models.CharField(max_length=50,blank=True,null = True,)
updateDate = models.DateTimeField(default = timezone.now, editable = False)
addedBy = models.CharField(max_length=35,blank=True,)
Run Code Online (Sandbox Code Playgroud)
我想创建一个视图来显示所有当前项目的表单。这很容易使用modelformset_factory. 但是我怎样才能为这些项目表单实例中的每一个添加一个附加表单,以便可以对项目(外键)进行更新?理想情况下,用户对各种项目进行更改,为一个或多个项目添加更新,然后提交表单以保存所有更改。我在下面的内容似乎非常接近,但它正在保存对每个项目的更新,其中包含我在最后一个表单中输入的任何内容的值。这似乎是因为形式不是唯一的。我走上了使用前缀的道路,这似乎也无济于事。帮助!
更新表格
class updateForm(ModelForm):
def __init__(self, *args, **kwargs):
super(updateForm, self).__init__(*args, **kwargs)
class Meta:
model = Updates
fields = ('update',)
Run Code Online (Sandbox Code Playgroud)
看法:
def MDSprojects(request):
projects = Projects.objects.filter(dept = 'Assistive Technology') …Run Code Online (Sandbox Code Playgroud) 我想创建一个时隙列表(作为字符串)。使用 python 执行此操作的最有效方法是什么?
此列表将从上午 8:00 到晚上 10 点以 15 分钟为增量。我想要一个格式如下的列表:
['8:00am - 8:15am', '8:15am - 8:30am', '8:30am - 8:45am',.......]
Run Code Online (Sandbox Code Playgroud)
我尝试使用for嵌套在一起的几个循环,直到它变得非常复杂,而且我知道必须有一种更好的、更 Pythonic 的方式来做这样的事情。
谁有想法?
我正在使用 ngrok 在树莓派上公开我的本地主机,并且 ngrok 受密码保护。我在网络之外的另一台计算机上使用 Django 来访问此树莓派上的网页(简单服务器)。我不想手动输入 ngrok 的用户名和密码。
如何自动填写 ngrok 用户/密码,这是 chrome 中的一个弹出窗口,要求输入用户名和密码?
我尝试过的:我首先尝试在我的模板中使用 JS,只是使用 fetch 请求:
https://user:password@myngrokdomain.ngrok.io但是 chrome 在控制台中抛出一个错误,说我无法像这样以纯文本形式传递凭据,理所当然......
然后我尝试使用 python requests:
UN= "myuser"
PWD = "mypassword"
loginURL = "https://myngrokdomain.ngrok.io"
client = requests.session()
login_data = dict(username=UN, password=PWD,)
r = client.post(loginURL, data=login_data)
Run Code Online (Sandbox Code Playgroud)
这返回了 401 访问被拒绝
r.headers + r.reason返回:
401 Unauthorized Unauthorized {'Content-Length': '16', 'Content-Type': 'text/plain', 'Www-Authenticate': 'Basic realm="ngrok"', 'Date': 'Tue, 16 Mar 2021 15:22:15 GMT'}
我正在尝试将一系列 AJAX 请求写入字典。我正在尝试为此使用承诺,但是我要么错误地编写了承诺语法,要么我认为可能发生的是该函数实际上正在完成(for 循环已完成,并且 AJAX 请求已发送)但 AJAX 请求仍在没有回来。因此,这仍然返回一个空字典。
let dict = {};
let activeMachines = ["41", "42", "43"];
let dataPromise = new Promise (function (resolve, reject)
{
for (let i = 0; i < activeMachines.length; i++)
{
let machineID = activeMachines[i]
let getAPIData = new XMLHttpRequest();
let url = 'http://127.0.0.1:8000/processes/apidata/' +machineID + '/';
getAPIData.open('GET', url);
getAPIData.send();
getAPIData.onload = function()
{
let APIData = JSON.parse(getAPIData.responseText);
dict['machine_' + machineID] = APIData[0].author_id;
dict['temp' + machineID] = APIData[0].tempData; //get value
dict['humid' + machineID] = …Run Code Online (Sandbox Code Playgroud) nginx错误日志是什么2020/10/23 06:51:45 [notice] 361#361: signal process started意思?
更多背景信息:
我有一些树莓派与运行 nginx 作为 Web 服务器的数字海洋 Ubuntu Droplet 上的 Django 应用程序进行通信。这些树莓派停止与我的服务器通信,并且它们在物理上离我很远。我可以看到他们与我的服务器的最后一次通信是在 2020/10/23 06:51:41 然后他们停止了(在记录 nginx 错误消息之前的几秒)。有权访问 pi 的用户说他们没有断电,互联网正在工作,所以他们重新启动了,但仍然没有任何反应。
我尝试过:
sudo systemctl restart nginx其次是sudo systemctl restart gunicorn
这并没有解决问题。我似乎找不到有关此错误的文档
有没有办法通过 django 通道更好地管理 cpu 和内存使用情况?我试图通过 websockets 非常快速地传输数据,这种方法运行良好,直到我的 ubuntu 服务器 cpu 达到 100%,内存达到 90%,然后 daphne 崩溃。我使用 NGINX 和 Daphne 作为服务器/代理。
有没有更好的方法来设置redis?或者可能是“清除缓存”或类似的方法?
我的设置是:
设置.py
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("localhost", 6379)],
"capacity": 5000,
"expiry": 5,
},
},
}
Run Code Online (Sandbox Code Playgroud)
阿斯吉
application = ProtocolTypeRouter({
# Django's ASGI application to handle traditional HTTP requests
"http": django_asgi_app,
# WebSocket chat handler
"websocket": AuthMiddlewareStack(
URLRouter([
url(r"^stream/(?P<device_id>[\d\-]+)/$", StreamConsumer.as_asgi()),
url(r"^status/(?P<device_id>[\d\-]+)/$", StatusConsumer.as_asgi())
])
),
})
Run Code Online (Sandbox Code Playgroud)
消费者.py
class StreamConsumer(AsyncWebsocketConsumer):
async def connect(self):
self.room_name = self.scope['url_route']['kwargs']['device_id']
self.room_group_name …Run Code Online (Sandbox Code Playgroud) 我有一个 Django 应用程序,用于在数字海洋空间存储静态图像。通过执行以下操作,我可以轻松地在模板中显示这些静态图像:<img>{% static 'images/my_image.png' %}</img>
如果我在加载后检查 HTML 页面,我会看到如下内容:
https://nyc3.digitaloceanspaces.com/nameofmyspace/nameofmyspace-space-static_DEV/images/my_image.png?AWSAccessKeyId=XXXXXXXXXXXXXX&Signature=XXXXXXXXXXXXXXXXXX%3D&Expires=1621600823
但现在我想使用 javascript 动态更改此图像。
所以我试过:
document.getElementById(id+"dynamicImage").src = "{% static 'images/my_image_2.png' %}";
这几乎有效,但图像无法加载。原因是在检查src了 javascript 提供的内容之后:
https://nyc3.digitaloceanspaces.com/nameofmyspace/nameofmyspace-space-static_DEV/images/my_image.png?AWSAccessKeyId=XXXXXXXXXXXXXX&Signature=XXXXXXXXXXXXXXXXXX%3D&Expires=1621600823
你可以看到任何&附加amp;了它的地方。这样做的正确方法是什么?
我可以想到 2 种方法来纠正这个问题,但它们看起来很笨拙。
<img id = 'my_image' hidden >{% static 'images/my_image.png' %}</img>对我计划使用的所有链接进行处理,然后在 javascript 中使用let URL = document.getElementById("my_image").innerHTML;. 这将不是一个更新的噩梦,但看起来很笨拙,必须是一个更好的方法。如何使用 for 循环和数组访问字典值?
例如:我有一本字典:
var dict = {
machine_41: {
temp: "14",
humidity: "89",
time: Wed Oct 31 2018 12: 27: 16 GMT - 0500(Central Daylight Time)
},
machine_42: {
temp: "20",
humidity: "13",
time: Wed Oct 31 2018 12: 27: 41 GMT - 0500(Central Daylight Time)
},
machine_43: {
temp: "34",
humidity: "36",
time: Wed Oct 31 2018 1 GMT - 0500(Central Daylight Time)
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过使用访问值console.log(dict.machine_41.temp)
但是,如何使用 for 循环和数组来执行此操作?
我努力了:
let activeMachines = [41,43,45];
for(let i = 0; …Run Code Online (Sandbox Code Playgroud) 我正在使用Django 2.0版开发的数字海洋飞沫服务器上部署django应用程序。使用Putty SSH进入我的ubuntu服务器,我尝试使用进行升级pip install Django==2.2。我收到以下错误消息:
Could not find a version that satisfies the requirement Django==2.2 (from
versions: 1.1.3, 1.1.4, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6,
1.2.7, 1.3, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.4, 1.4.1,
1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.11,
1.4.12, 1.4.13, 1.4.14, 1.4.15, 1.4.16, 1.4.17, 1.4.18, 1.4.19, 1.4.20,
1.4.21, 1.4.22, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.5.6, 1.5.7,
1.5.8, 1.5.9, 1.5.10, 1.5.11, 1.5.12, 1.6, 1.6.1, 1.6.2, 1.6.3, 1.6.4,
1.6.5, 1.6.6, …Run Code Online (Sandbox Code Playgroud) django ×6
python ×6
javascript ×5
ajax ×1
django-forms ×1
django-views ×1
html ×1
nginx ×1
ngrok ×1
ubuntu ×1
websocket ×1