小编Tom*_*Mac的帖子

Python需求文件必须指定版本吗?

我有一个Python代码库的requirements.txt文件。该文件具有指定的所有内容:

pytz==2017.2
requests==2.18.4
six==1.11.0
Run Code Online (Sandbox Code Playgroud)

我要添加一个新包。我应该列出它的版本吗?如果是,如何选择要指定的版本?

python requirements.txt

9
推荐指数
3
解决办法
2698
查看次数

在 Fastapi 中将用于身份验证的依赖项/依赖项放在哪里?

我在 Fastapi 身份验证中看到了两种不同的使用dependent的方法:

方法一:

@app.get('/api/user/me')
async def user_me(user: dict = Depends(auth)):
    return user
Run Code Online (Sandbox Code Playgroud)

和方法2:

@app.get('/api/user/me', dependencies=[Depends(auth)])
async def user_me(user: dict):
    return user
Run Code Online (Sandbox Code Playgroud)

方法 1 和方法 2 之间有什么区别?哪种方法更适合保护 API(即需要身份验证)?

python authentication python-3.x fastapi

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

如何打印类属性/元素的文档字符串?

我有一堂课:

class Holiday(ActivitiesBaseClass):
    """Holiday is an activity that involves taking time off work"""

    Hotel = models.CharField(max_length=255)
    """ Name of hotel """
Run Code Online (Sandbox Code Playgroud)

我可以通过键入以下内容来打印类文档字符串:

print(Holiday.__doc__)
Run Code Online (Sandbox Code Playgroud)

这输出为:

Holiday is an activity that involves taking time off work 
Run Code Online (Sandbox Code Playgroud)

如何打印属于 Class 属性/元素的 Hotel 的文档字符串?

我试过的

print(Holiday.Hotel.__doc__)
Run Code Online (Sandbox Code Playgroud)

返回:

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Run Code Online (Sandbox Code Playgroud)

我也试过这个help()功能无济于事。

NB

Sphinx 似乎能够提取类属性的文档字符串并将它们包含在 readthedocs 中,所以我希望有一种方法

python django docstring django-models python-3.x

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

从 flake8 测试中排除 .env 目录?

问题

我收到来自本地 .env 的数千个 flake8 错误。一些错误消息的示例:

./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3848:80: E501 line too long (85 > 79 characters)
./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3848:84: E202 whitespace before ')'
./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3855:51: E201 whitespace after '('
./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3855:65: E202 whitespace before ')'
./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3858:50: E201 whitespace after '('
./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3858:78: E202 whitespace before ')'
./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3861:31: E231 missing whitespace after ','
./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3865:1: W293 blank line contains whitespace
./env/lib/python3.7/site-packages/pip/_vendor/pyparsing.py:3866:1: E302 expected 2 blank lines, found 1
Run Code Online (Sandbox Code Playgroud)

我的目录是这样的:

在此处输入图片说明

我的 flake8 文件如下所示:

[flake8]
exclude =
    migrations,
    __pycache__,
    manage.py,
    settings.py,
Run Code Online (Sandbox Code Playgroud)

如何将我的 env 文件内容添加到 flake8 的排除列表中?

我试过的

我试过添加:

  env, …
Run Code Online (Sandbox Code Playgroud)

python django flake8

4
推荐指数
3
解决办法
895
查看次数

从终端运行 python 函数

我试图弄清楚如何从我的作业文件中运行我的函数。我打开终端,将目录更改为桌面(我的 hw1.py 文件所在的位置),启动 python,然后输入“import hw1”。然后我输入 fizzbuzz(15),它返回以下语句:

Traceback (most recent call last): File "<stdin>", line 1, in <module>
Run Code Online (Sandbox Code Playgroud)

我尝试运行的唯一功能是:

def fizzbuzz(n):
    if (n % 3) == 0 and (n % 5) == 0:
       return "FizzBuzz"
    elif (n % 3) == 0:
       return "Fizz"
    elif (n % 5) == 0:
       return "Buzz"
Run Code Online (Sandbox Code Playgroud)

python terminal

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

使用 boto3 从 S3 存储桶下载文件时出现 ValueError?

我使用以下命令成功地将图像文件从 S3 存储桶下载到本地计算机:

import os
import boto3
import botocore

files = ['images/dog_picture.png']
bucket = 'animals'
s3 = boto3.resource('s3')

for file in files:
   s3.Bucket(bucket).download_file(file, os.path.basename(file))
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试指定图像应保存在本地计算机上的目录时,如文档中所做的那样

   s3.Bucket(bucket).download_file(file, os.path.basename(file), '/home/user/storage/new_image.png')
Run Code Online (Sandbox Code Playgroud)

我得到:

ValueError: Invalid extra_args key '/home/user/storage/new_image.png', must be one of: VersionId, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, RequestPayer
Run Code Online (Sandbox Code Playgroud)

我一定做错了什么,但我正在遵循文档中的示例。有人可以帮我指定一个本地目录吗?

python amazon-s3 amazon-web-services python-3.x boto3

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

Django 单选按钮显示为项目符号列表,在 mark_safe() 内

背景

我在表单中使用了 'mark_safe()' 以传递 HTML 指令并在我的表单标签中显示项目符号:

class FormFood(forms.Form):
    CHOICES = [ (1,'Yes'), (2, 'No')]
    response = forms.ChoiceField(widget=forms.RadioSelect,
              label=mark_safe("Do you like any of these foods? <ul><li>Pasta</li><li>Rice</li><li>Cheese</li></ul>"), choices=CHOICES)
Run Code Online (Sandbox Code Playgroud)

这输出为:

在此处输入图片说明

问题

正如您在上面看到的,尽管我不想要这样,但现在“是”和“否”旁边也出现了要点。检查元素发现这是因为它们也是在无序列表标签中构造的(尽管我的 ul 标签在上面的标签中以“cheese”结尾):

<form method="POST">
    <label for="id_response_0">Do you like any of these foods?
        <ul>
            <li>Pasta</li>
            <li>Rice</li>
            <li>Cheese</li>
        </ul>
    </label>
    <ul id="id_response">
        <li>
            <label for="id_response_0">
                <input type="radio" name="response" value="1" required="" id="id_response_0"> Yes
            </label>

        </li>
        <li>
            <label for="id_response_1">
                <input type="radio" name="response" value="2" required="" id="id_response_1"> No
            </label>

        </li>
    </ul>
    <input type="hidden" name="csrfmiddlewaretoken" value="FaOTY4WlVLFMl3gNtut8BJihJKub1Is0wRJRxxLck1e2eJocJVXRiGoOLDr9jdvx">
    <input type="submit"> …
Run Code Online (Sandbox Code Playgroud)

html python django django-forms python-3.x

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

使用 Faker 返回一个范围之间的假年份?

我正在尝试使用 Faker 创建一些从 1800 年到 1900 年范围内的假年份(只是年份而不是日期)。

我已经阅读了有关假日期和年份的文档,看起来 Faker.year() 是前进的方向。但是,没有关于向 .year() 添加范围的文档。目前,它仅输出 1970 年后的内容。

python random date range faker

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

如何在 Django 登录表单中创建自定义错误消息?

我正在为我的 Django 应用程序制作登录页面。目前,如果我输入错误的用户名或密码,则会显示以下错误消息:

错误.

有没有办法可以自定义此消息以摆脱“___all____”和要点?也许只是说“请输入正确的用户名和密码。请注意,这两个字段都可能区分大小写。”?

我的代码的简化版本如下:

视图.py:

from django.contrib.auth import authenticate,login,logout
Run Code Online (Sandbox Code Playgroud)

html:

<div class="form_container">
    <form class="log_in_form" action="{% url 'inventory_management_app:login' %}" method="post">
    <p>
    {% csrf_token %}

    {{ form.username }}
    </p>

    <br><br>

    <p>
    {{ form.password }}

    <br>

    {{ form.errors }}
    </p>
    <p>

    <br><br>

  <input id="search-button" class="btn btn-dark" type="submit" value="Login">
  </form>
  </p>
  </div>
Run Code Online (Sandbox Code Playgroud)

表格.py:

from django import forms
from django.contrib.auth.forms import AuthenticationForm
from django.forms.widgets import PasswordInput, TextInput


class CustomAuthForm(AuthenticationForm):
    username = forms.CharField(widget=TextInput(attrs={'class':'validate','placeholder': 'Email'}))
    password = forms.CharField(widget=PasswordInput(attrs={'placeholder':'Password'}))
Run Code Online (Sandbox Code Playgroud)

网址.py

url(r'^login/$', auth_views.login, name='login', kwargs={"authentication_form":CustomAuthForm}),
Run Code Online (Sandbox Code Playgroud)

编辑:按照 marxin …

django

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

如果我们有 &lt;!DOCTYPE html&gt;,为什么还需要 &lt;html&gt; 标签?

<html>如果我们已经用<!DOCTYPE html>标签定义了这个文档是html,为什么还要加标签呢?

是否可以添加任何其他标签来代替?

如果没有,我们为什么需要它?

html frontend

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