小编Eri*_*Kim的帖子

Python Django-os.environ.setdefault('DJANGO_SETTINGS_MODULE','folder.settings')是做什么的?

我现在正在上在线Django课程,并且我不理解某些配置代码。我的教练说,在填充我的数据库的python代码中,需要以下代码。

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ProTwo.settings')

import django
django.setup()
Run Code Online (Sandbox Code Playgroud)

我根本不理解这些代码在做什么,除了其中的第二个参数setdefault()是指我的应用程序的settings.py文件。

什么DJANGO_SETTINGS_MODULE啊 它有什么作用?为什么将其作为arg传入setdefault()

怎么django.setup()办?它会发生什么变化?

请了解,我几乎是新手,也不懂很多行话。

python django setdefault

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

Django Channels-不断从服务器向客户端发送数据

请看这个例子

如您所见,某种形式的event内容不断发送给客户端。我想模仿Django-Channels里面使用consumers.py。这是我所拥有的简化版本:

class ChatConsumer(AsyncConsumer):
    async def ws_connect(self, event):
        self.send = get_db_object()

        ....

        await self.send({
            "type": "websocket.accept"
        })

    # I need to CONSTANTLY receive & send data
    async def ws_receive(self, event):

        obj = ...# query DB and get the newest object

        json_obj = {
            'field_1': obj.field_1,
            'field_2': obj.field_2,
        }

        await self.send({
            "type": "websocket.send",
            "text": json.dumps(json_obj)
        })


    @database_sync_to_async
    def get_db_object(self, **kwargs):
        return Some_Model.objects.get(**kwargs)[0]
Run Code Online (Sandbox Code Playgroud)

在这里,我希望我的Django后端能够不断运行:

  1. 查询数据库

  2. 从数据库接收obj

  3. 将收到的obj发送给前端Websocket event

我该如何实现?重要的是,我需要不变地将数据发送到客户端。

Django-Channels互联网上的大多数资源仅包含聊天应用程序,而不必经常将数据发送到客户端。我找不到能完成此工作的任何工作代码。

请不要再提出关于Redis或渠道文档的建议...或者缺少一些缺少良好文档的随机第3方库...。推荐起来很容易,但是很难实现。例如,我发现有人推荐 …

django websocket channels django-channels

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

绘制频率计数的概率密度函数

我想将拟合分布转换为频率。

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
%matplotlib notebook

# sample data generation
np.random.seed(42)
data = sorted(stats.lognorm.rvs(s=0.5, loc=1, scale=1000, size=1000))

# fit lognormal distribution
shape, loc, scale = stats.lognorm.fit(data, loc=0)
pdf_lognorm = stats.lognorm.pdf(data, shape, loc, scale)

fig, ax = plt.subplots(figsize=(8, 4))

ax.hist(data, bins='auto', density=True)
ax.plot(data, pdf_lognorm)
ax.set_ylabel('probability')
ax.set_title('Linear Scale')
Run Code Online (Sandbox Code Playgroud)

上面的代码片段将生成以下图:

在此输入图像描述

正如您所看到的,y 轴表示概率。但我希望它是在频率方面。

fig, ax = plt.subplots(figsize=(8, 4))
ax.hist(data, bins='auto')
ax.set_ylabel('probability')
ax.set_title('Linear Scale')
Run Code Online (Sandbox Code Playgroud)

通过取消设置density=True,直方图将按照频率显示。但我不知道如何以与直方图中相同的方式拟合分布 - 观察我如何无法在此直方图中绘制橙色拟合线。

在此输入图像描述

我怎样才能做到这一点?我认为我应该将拟合分布与直方图曲线下的面积相乘,但我不知道该怎么做。

python statistics distribution matplotlib probability-density

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

使用 for 循环在一行中创建一个新集合

nums = [13, 1, 2, 13, 2, 1, 13]
index = [1,3]

unwanted = set()
for i in index:
    unwanted.add(nums[i])

print(unwanted)
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将中间 3 行代码合并为一行吗?所以,像

new = [i for i in nums if i not in unwanted]
Run Code Online (Sandbox Code Playgroud)

我是 python 新手,试图了解“i for i in nums ....”的作用。在典型的 for 循环中,我们只需编写

for i in item_list
    ....
Run Code Online (Sandbox Code Playgroud)

并且我们不在“for”前面添加“i”。我想知道“for”前面的“i”在做什么。

python for-loop list set python-3.x

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

python regex,删除除撇号外的转义字符和标点符号

我有一个看起来像这样的字符串:

"aaa\n\t\n asd123asd water's tap413 water blooe's"
Run Code Online (Sandbox Code Playgroud)

如何使用正则表达式删除除撇号之外的所有转义字符、数字和标点符号?

我对正则表达式很陌生,如果您能解释每个表达式的含义,如果正则表达式公式很复杂,我将不胜感激

python regex python-3.x

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

PostgreSQL - 查询所有表的所有表列

如何查询数据库中所有表的所有表列?

我试过的方法:

  1. 使用获取所有表名 select tablename from pg_tables where schemaname = 'public'
  2. 使用UNIONPostgres 的方法处理 cmd 字符串。
  3. 执行 cmd 字符串。

我在一个数据库中有 19 个表,我的方法导致查询时间慢了 19 倍。而且,它不会返回我想要的东西。所有表都有两列,其中一列始终是名为time. 使用该UNION方法不会返回 19 个time字符串。它只返回一个time字符串和 19 个其他列名。但是,我想是这样的: [('table_1', ['time', 'col']), ('table_2', ['time', 'col']), ('table_3', ['time', 'col])...]

有没有优雅的方法来做到这一点?

python sql database arrays postgresql

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

Django - 检查用户是否对每个 url 进行了身份验证

在我的 html 上,我可以使用以下语法检查用户是否已登录:

{% if user.is_authenticated %}
  <div id="display_something">...</div>
{% else %}
  <p>Please Log in</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

但是,如果我想检查用户是否为我呈现的每个 html 文件进行了身份验证,我该怎么办?我是否必须{% if ... %}为每个 html 文件复制和粘贴该块?Django 处理这个问题的方式是什么?什么是好的做法?

django django-authentication django-users

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

Django - 在创建父对象时创建所有外键对象

考虑以下代码,其中我有一个父模型,以及通过ForeignKey关系与父模型相关的所有子模型。每个孩子都可能有自己的孩子,让整个家庭看起来像一个树形结构。

class Parent(models.Model):
    field = models.CharField(max_length=100, primary_key=True)

class Child_1(models.Model):
    parent = models.ForeignKey(Parent, models.CASCADE, related_name='aa')

class Child_2(models.Model):
    parent = models.ForeignKey(Parent, models.CASCADE, related_name='aa')

class Child_1_Child_1(models.Model):
    parent = models.ForeignKey(Child_1, models.CASCADE, related_name='aa')

class Child_1_Child_2(models.Model):
    parent = models.ForeignKey(Child_1, models.CASCADE, related_name='aa')
Run Code Online (Sandbox Code Playgroud)

在为 制作对象后Parent,我想创建所有子对象。

我想我可以像这样创建所有子对象:

parent = Parent.objects.create(**kwargs)
child_1 = Child_1.objects.create(parent=parent)
child_2 = Child_2.objects.create(parent=parent)
child_1_child_1 = Child_1_Child_1.objects.create(parent=child_1)
child_1_child_2 = Child_1_Child_2.objects.create(parent=child_1)
...
Run Code Online (Sandbox Code Playgroud)

但是你知道,这看起来不太好。是否有任何内置的 Django 方法可以在链中处理这种父子对象的创建?

django django-models

3
推荐指数
2
解决办法
4111
查看次数

Django - 表单 - 更改模板上的字段名称

我必须遵循forms.py并且models.py

# models
class BHA_Component(models.Model):
    item_description = models.CharField(max_length=111)
    num_of_jts = models.CharField(max_length=111)
    length = models.CharField(max_length=111)
    cum_length = models.CharField(max_length=111)
    outer_d = models.CharField(max_length=111)

# forms
class BHA_Component_Form(forms.ModelForm):
    class Meta():
        model = BHA_Component
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直在使用 html 在屏幕上打印字段名称,如下所示:

{% for field in bha_form %}
    <label>{{ field.name }}</label>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我传递了表单,bha_form作为 中的上下文变量views.py

如果我使用这组代码,它会在屏幕上显示:

item_description, num_of_jts, length, cum_length, outer_d

但我想将其打印在屏幕上:

Item Description, # of jts, Lenth, Cum. Len., OD

正如你所看到的,我无法通过简单地使用某种s.upper()方法,或者正则表达式方法来获得这个输出,因为原始字段名称和我想要的输出之间没有一定的字符串转换关系。

我想手动决定每个字段将在屏幕上打印哪些字段名称。但我不想通过硬编码 html 元素来做到这一点,如下所示:

<label>Item …
Run Code Online (Sandbox Code Playgroud)

python django django-forms

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

Python,如何排序对象列表?

我有一个看起来像这样的对象列表.

hand = [ Card(10, 'H'), Card(2,'h'), Card(12,'h'), Card(13, 'h'), Card(14, 'h') ]
Run Code Online (Sandbox Code Playgroud)

卡(10,'H)在这里不是元组,而是一个对象.我知道如果列表中的每个项目都是元组形式,如此排序,如何对此列表进行排序,

hand = sorted(hand, key = lambda x: x[0])
Run Code Online (Sandbox Code Playgroud)

但我不知道如何对对象列表进行排序.我想按第一个输入值排序我的列表,这是Card()中的数字

我怎样才能做到这一点?

编辑:这是Card()的定义.

class Card(object):

    RANKS = (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)

    SUITS = ('C', 'D', 'H', 'S')

    def __init__(self, rank=12, suit='S'):

        if (rank in Card.RANKS):
            self.rank = rank
        else:
            self.rank = 12

        if (suit in Card.SUITS):
            self.suit = suit.upper()
        else:
            self.suit = 'S'

    def __str__(self):
        if (self.rank == 14): …
Run Code Online (Sandbox Code Playgroud)

python sorting object python-3.x

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

从列表生成多个条件语句

我有这样的清单

a = [1,0,6,9,6,0,6,0,1,4,0,7,5,0]
Run Code Online (Sandbox Code Playgroud)

我想创建一个像这样的条件语句:

if a[1,3,8,13] != 0:
    do something
Run Code Online (Sandbox Code Playgroud)

这段代码显然是错误的.它必须是这样的:

if a[1] != 0 and a[3] != 0 and a[8] != 0 and a[13] != 0:
    do something
Run Code Online (Sandbox Code Playgroud)

我想知道在我的情况下是否有更优雅的方法来使用lambda或loop编写多个条件语句.假设我的列表长度为100,我需要为列表的57列创建条件语句.我可能不想以这样的方式写出来......谢谢

python conditional if-statement python-3.x

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

jQuery - 在不同的div级别中获取最接近的元素

我点击列表按钮class="btn btn-primary modal-save".

当我点击那个按钮时,我希望它能抓住它的textarea元素div class="modal-body".

由于某种原因,我的closest()方法没有按照我希望的方式运行,并返回undefined

为什么,以及如何解决?

$('.modal-save').on('click', function() {

  var text = $(this).closest(".modal-footer")[0];
  console.log(text) // this code works

  var text = $(this).closest(".modal-body textarea")[0];
  console.log(text) // this gives me undefined. Why??


});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal-content">
  <div class="modal-header">...</div>
  <div class="modal-body">
    <textarea class="form-control" rows="10" placeholder='comment...'></textarea>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
    <button type="button" class="btn btn-primary modal-save" data-dismiss="modal">Save changes</button>
  </div>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

Django - 登录 - 禁止(CSRF 令牌丢失或不正确。):

Forbidden (CSRF token missing or incorrect.)当我尝试使用登录页面时收到错误。

场景如下:

  1. 用户打开了两个选项卡。
  2. 两个选项卡都是登录页面。
  3. 在选项卡 1 中,用户成功登录,并被重定向到需要登录的新页面。
  4. 在选项卡2中,用户尚未刷新页面,仍处于登录页面。在Django后端,用户已经通过身份验证,但前端模板还没有注意到它。
  5. 在选项卡 2 中,当我单击登录按钮时,出现Forbidden (CSRF token missing or incorrect.)错误。
  6. 我确定这csrf_token是在表格中。
  7. 仅当我使用两个选项卡时才会出现此错误。
  8. 我正在使用 AJAX

为什么会发生这种情况?我该如何修复它?

我不知道这会有帮助,但这是我的views.py登录信息

class Login_View(LoginView):

    template_name = 'login.html'

    def post(self, request, *args, **kwargs):
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)

        response_data = {}
        if user is not None:
            if user.is_active:
                login(request, user)
                response_data['result'] = 'success'
            else:
                return HttpResponse("Inactive user.")
        else:
            response_data['result'] = 'fail'

        return HttpResponse(json.dumps(response_data), content_type="application/json")
Run Code Online (Sandbox Code Playgroud)

django ajax csrf django-csrf csrf-protection

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