Py学习  »  Selcuk  »  全部回复
回复总数  16
5 年前
回复了 Selcuk 创建的主题 » 找不到Django项目页面

'polls.urls' 方法 polls/urls.py ,也就是说,你需要有一个 urls.py polls 应用程序文件夹。

该教程的上一步要求您创建一个:

https://docs.djangoproject.com/en/3.1/intro/tutorial01/#write-your-first-view

投票/网址。py 文件包括以下代码:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

然后,URL调度程序将连接主目录中的路径 网址。py ( 'polls/' )还有那个 投票/网址。py ( '' )解析视图名称的步骤( views.index ).

4 年前
回复了 Selcuk 创建的主题 » 如何在python中为相应的java语法编写同步for循环

Python中没有确切的对应项,但这应该是等效的(而且我更容易理解)。注意 x<n 条件在Java版本中是多余的:

for l in range(n):
    for y in range(l, n):
        x = y - l
        # The rest of your code
6 年前
回复了 Selcuk 创建的主题 » 可通过密码短语访问的Django页面

以下是实现这一点的简单方法(只是概念证明,而不是生产质量代码):

def my_view(request):
    if request.method == "POST":
        if request.POST.get("password") == "s3cr3t":
            return render(request, "secret_page.html")
    return render(request, "password_page.html")

<form method="post">
   {% csrf_token %}
   <input type="password" name="password">
   <input type="submit">
</form>
6 年前
回复了 Selcuk 创建的主题 » 一行python循环中的If和else

它们是不同的语法。你要找的是:

over_30 = [number for number in numbers if number > 30]

这是一个条件列表理解。这个 else 子句实际上是一个无条件列表理解,与三元表达式结合在一起:

over_30 = [number if number > 30 else 0 for number in numbers]

你在这里计算三元表达式( number if number > 30 else 0 number numbers 可接受的。

6 年前
回复了 Selcuk 创建的主题 » Python有模仿C的rand()序列的函数吗?

你可以用 random.seed() . 以下示例应在每次运行时打印相同的序列:

import random
random.seed(42)
for _ in range(10):
    print(random.randint(0, 32768))

10 年前
回复了 Selcuk 创建的主题 » NGINX-uWSGI或python反向代理[复制]

uWSGI documentation 回答这个问题:

通常,您选择的web服务器(Nginx、Mongrel2等)将提供 静态文件高效快速,只需转发动态文件 对uWSGI后端节点的请求。

uWSGI项目有ISPs和PaaS(即托管市场)作为 主要目标,通常您希望避免生成 (并解释)这本身。更重要的是,你想 允许客户定制服务静态资产的方式

7 年前
回复了 Selcuk 创建的主题 » 动态更新Python字典内容

你把字典和单子搞混了。尝试以下方法:

data = {"comments": []}
data["comments"].append({"comment": "foo"})
data["comments"].append({"comment": "bar"})

价值 data 会是:

{'comments': [{'comment': 'foo'}, {'comment': 'bar'}]}
6 年前
回复了 Selcuk 创建的主题 » 在python中如何使用while?

你就快到了。倒数就行了,也就是说,换下一行

n = 1

n = i

while n <= i:
    print('%d '%n, end="")
    n += 1

while n > 0:
    print('%d '%n, end="")
    n -= 1

也可以尝试一行解决方案来获得乐趣:

>>> print("\n".join([" " * (7 - i) * 2 + " ".join([str(x) for x in reversed(range(1, i))]) for i in range(2, 8)]))
6 年前
回复了 Selcuk 创建的主题 » django如何在模板中显示子查询

返回的值是 tuples . 可以使用索引访问它们,例如:

{{ account.0 }}'s balance is {{ account.1 }}

将打印

andrea's balance is 10
6 年前
回复了 Selcuk 创建的主题 » 如何使用python在sql select语句中插入今天的日期?

不用用python计算今天的日期。只需使用postgresql函数 CURRENT_DATE :

stmt = "SELECT ... WHERE TO_DATE(DT) >= CURRENT_DATE ..."
6 年前
回复了 Selcuk 创建的主题 » python vigenere密码加密方法未正确加密

有两个错误:

首先,你不能在密钥中使用所有字符。更改以下行:

if key_inc == len(key)-1:
    key_inc = 0

if key_inc == len(key):
    key_inc = 0

其次,即使处理消息中的非字母字符(例如空格),也要移动键指针。仅当对字符进行编码时才执行此操作,即进行以下更改:

if msg_char.isalpha() and key_char.isalpha():
    ...
    key_inc = key_inc+1   # Move this line here
else:
    ...
6 年前
回复了 Selcuk 创建的主题 » ` sorted()`occurs`syntaxError`在python3中

照它说的做;用括号括起来 generator expression 。这是您试图排序的生成器表达式:

(e,i) for i,e in enumerate(myList)

当它是 ,python自动采用括号,但如果有其他参数,则必须显式添加括号,即。

sorted(((e,i) for i,e in enumerate(myList)), reverse=True)
9 年前
回复了 Selcuk 创建的主题 » Django如何分别为每个用户加载视图?[副本]

Django文件 answers this question 详细说明:

如果您希望存储与 User ,您可以使用 OneToOneField 到包含字段以获取附加信息的模型。这个一对一模型通常被称为配置文件模型,因为它可能存储有关站点用户的非身份验证相关信息。

在您的情况下,添加的字段似乎与身份验证无关,因此您最好使用用户配置文件方法。对于这样的目的,替换一个自定义的用户模型是多余的。

7 年前
回复了 Selcuk 创建的主题 » 如何在Django模板中嵌套的if语句为true时立即结束forloop

如果只需要第一个元素,就不需要 for 循环。只需使用索引处的值 0 (即第一个值):

{% if applicant.username in applications.0.user.username %}
    <p> Do A </p>
{% else %}  
    <p> Do B </p>
{% endif %}

据记录,没有 break Django模板语言中的语句。

7 年前
回复了 Selcuk 创建的主题 » 按字段值约束Django模型

我不认为你能用你目前的模式做到这一点,但如果这是唯一的两个选择 level 字段,考虑将其更改为可以为空的 BooleanField 例如,

is_main = models.BooleanField(null=True) 

并将其设置为 None 对于二级帐户。然后一个 unique_together 将起作用,因为就SQL而言,每个空值都是唯一的(请参见 this answer )

因为有更多的选择 水平 字段,正如您稍后澄清的,您可以添加第三个字段,并可能重写 .save() 方法将其自动设置为 没有 如果 水平 不是 "m" 为了额外的便利。

编辑: 如果您不关心可移植性, @Trent 建议PostgreSQL支持部分唯一索引,例如:

create unique index u_i on accounts(user_id, level_id) WHERE level_id = 'm';

这是一个 SQL Fiddle .

Location Availability

availabilities = Availability.objects.filter(
    start_datetime__lte=start_datetime,
    end_datetime__gte=end_datetime)
for availability in availabilities:
    print(availability.location.id, availability.location.name, availability.price)

availability.location select_related

availabilities = Availability.objects.select_related('location').filter(...