小编The*_*ool的帖子

返回带有字段名称而不是别名的 pydantic 模型作为 fastapi 响应

我试图用定义的字段名称而不是别名返回我的模型。

class FooModel(BaseModel):
    foo: str = Field(..., alias="bar")

@app.get("/") -> FooModel:
    return FooModel(**{"bar": "baz"})
Run Code Online (Sandbox Code Playgroud)

{"bar": "baz"}当我想要的时候就会得到回应{"foo": "baz"}。我知道使用dict模型的方法时这在某种程度上是可能的,但感觉不对并且会扰乱请求处理程序的输入。

@app.get("/") -> FooModel:
    return FooModel(**{"bar": "baz"}).dict(by_alias=False)
Run Code Online (Sandbox Code Playgroud)

我觉得应该可以在配置类中设置它,但我找不到正确的选项。

python pydantic fastapi

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

如何在 CSS 文件中使用 Flask url_for?

我正在将 Flask 与 HTML 和 CSS 结合使用。当这可能时:

<img src="{{ url_for('static', filename='images/planets.jpeg' ) }}">
Run Code Online (Sandbox Code Playgroud)

我必须在这里写什么来处理相同的图像?

.bgimg-1 {
   background-image: url('https://i.ytimg.com/vi/J9QOB6hSI-c/maxresdefault.jpg');
   min-height: 100%; }
Run Code Online (Sandbox Code Playgroud)

解决方案应与此类似:

.bgimg-1 {
   background-image: url('{{ url_for('static', filename='images/planets.jpeg' ) }}');
   min-height: 100%; }
Run Code Online (Sandbox Code Playgroud)

谢谢你。

html css jinja2 flask

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

如何将 CSS 框架与 LitElement 结合使用

我想将 CSS 框架 Bulma 与 LitElement 一起使用。我知道我可以使用外部样式表但是,他们表示这样做是不好的做法。我也有一个问题,我必须将它导入到每个元素中,这感觉不对。

因此,我将整个 Bulma 文件内容复制到 js 模块中,但导入后样式未应用。

import { css } from 'lit-element'

export default css`
@-webkit-keyframes spinAround {
  from {
    transform: rotate(0deg);
  }
...
Run Code Online (Sandbox Code Playgroud)

将样式导入为链接标记是可行的,但如上所述是不好的做法。

import { LitElement, html, css } from 'lit-element'
import './src/table.js'
import styles from './styles.js'

class LitApp extends LitElement {
  constructor() {
    super()
    this.tHeader = ['status', 'name', 'alias']
    this.data = [
      ['connect', 'john', 'jdoe'],
      ['disconnect', 'carol', 'carbon'],
      ['disconnect', 'mike', 'mkan'],
      ['disconnect', 'tina', 'tiba'],
    ]
  }
  static get styles() …
Run Code Online (Sandbox Code Playgroud)

javascript web-component polymer lit-element

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

在 css 网格模板中使用 sass 变量

我正在尝试使用 css 网格设置页面布局。我正在使用scss。当我想使用 scss 变量时grid-template,布局会中断。

$page-header-height: 3rem;
$content-header-height: 6rem;
$content-menu-width: 10rem;

// if i try to use these, the layout breaks
$content-foot-height: 4rem;
$page-sidebar-width: 4rem;

body {
  height: 100vh;
  display: grid;
   grid-template:
    'sidebar header header' $page-header-height
    'sidebar menu mainHead' $content-header-height
    'sidebar menu main' 1fr
    // here should be foot height  / sidebar width     
    'sidebar menu mainFoot' 4rem / 4rem $content-menu-width; // < problem
  > * {
    border: thin groove gray;
  }
}
Run Code Online (Sandbox Code Playgroud)

为什么使用具有完全相同值的变量时布局会中断?除此之外,所有其他变量都起作用。

这是代码,您可以插入变量并查看它是否损坏。

https://codepen.io/bluebrown/pen/NWqBYvq

css sass

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

Poetry python:如何使用从 Docker 运行的 Postgres 安装 Psycopg2

我在我的旧笔记本电脑上设置了一个项目,并在本地安装了 Postgresql,并使用 Poetry 作为包管理器。现在我搬到另一台笔记本电脑上。在这一项上,我想使用 Docker 中的 Postgres,所以我没有安装它。但是当我运行poetry install从文件设置项目时poetry.lock,它无法安装 Psycopg2 并出现错误:

Error: pg_config executable not found.
Run Code Online (Sandbox Code Playgroud)

据我搜索,它需要在本地安装 Postgres。那么,如何使用 Docker 中的 Postgres 从锁定文件安装 Psycopg2?

python postgresql psycopg2 docker python-poetry

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

如何在docker容器中设置flask-socketio?

您好,我正在尝试在 docker 容器中设置flask-socketio。它似乎可以运行,但是当我尝试访问端口 5000 上的 localhost 时出现错误(来自浏览器),就像我习惯使用 Flask 应用程序一样。它说:无法连接!

我将向您展示 5 个重要文件:Dockerfile、requirements.txt、docker-compose.yml、web_app.py 和 index.html

Dockerfile:

FROM python:3.6.5

WORKDIR /code
COPY * /code/
RUN pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

要求.txt:

Flask==1.0.2
Flask-SocketIO==3.0.1
eventlet==0.24.1
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

version: "3"
services:
  web:
    build: ./web
    ports:
      - '5000:5000'
    volumes:
      - './web:/code'
Run Code Online (Sandbox Code Playgroud)

我使用命令 docker-compose up --builddocker-compose run web /bin/bash以交互模式进入这个容器。

web_app.py:

from flask import Flask, render_template
from flask_socketio import SocketIO, emit

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)

@app.route('/')
def index():
    return render_template('index.html')

@socketio.on('my …
Run Code Online (Sandbox Code Playgroud)

python flask eventlet docker flask-socketio

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

sql statements.exec 错误:mssql:“?”附近的语法不正确

我需要帮助理解这个错误。该代码适用于 sqlite。看起来?sql 包甚至没有在那里放置值,而是按原样发送问号。我可以毫无问题地运行其他选择语句,因此这不是连接问题或类似问题。

错误:“?”附近的语法不正确

func TestSQLServerInsert(t *testing.T) {
    db, err := sql.Open("sqlserver", "my_trusted_string")
    //db, err := sql.Open("sqlite3", "../data/utm_info.db")

    if err != nil {
        t.Errorf("could not open database: %v", err)
    }
    defer db.Close()

    c := controller.NewC(db)
    u := controller.UtilizationResponse{
        Snapshot: []int{46, 22, 4, 4, 5, 3, 0, 8, 49},
        History:  []float32{55.1, 47.2, 0.3, 33.4, 23.5},
        Time:     time.Now(),
    }

    affectedRows, err := c.InsertUtil(u)
    if err != nil {
        t.Errorf("could not insert into db: %v", err)
    }
    var count int64 …
Run Code Online (Sandbox Code Playgroud)

sql-server go

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

如何在js中创建多行字符串

我尝试发送 HTML,但在将内容键处的值作为多行字符串写入时出现错误。其有效语法是什么?

var data = {    
        "subject":"Test",
        "content": "{<body><br><br><table style='text-align: left; border: 10px solid
                   #f5f5f5;padding:36px;margin:0px auto;background-color: #fff;'
                   class='maincontainer' cellspacing='0 cellpadding='0'>}"
      };
Run Code Online (Sandbox Code Playgroud)

但显示错误,如何纠正?

javascript

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

发布请求中的位置与内容位置

我对标题Location和感到困惑Content-Location

\n

内容-位置

\n

关于我在规范Content-Location中找到了这个声明。(强调我的)

\n
\n

对于像 PUT(第 4.3.4 节)或 POST(第 4.3.3 节)这样的状态更改请求,它意味着服务器的响应包含该资源的新表示,从而将其与可能仅报告有关内容的表示区分开来。动作(例如,“成功了!”)。这允许创作应用程序更新其本地副本,而无需后续 GET 请求。

\n
\n

然而,在 mdn 文档中有一个显示相反行为的示例。(强调我的)

\n
\n

该网站返回一条通用的成功消息,确认该帖子已发布。服务器通过 Content-Location 指定新帖子的位置:

\n
HTTP/1.1 201 Created\nContent-Type: text/plain; charset=utf-8\nContent-Location: /my-first-blog-post\n\n\xe2\x9c\x85 Success!\n
Run Code Online (Sandbox Code Playgroud)\n
\n

这两种说法似乎互相矛盾。

\n

现在,我不确定在响应中包含真实实体的情况下是否应该使用 Content-Location 。

\n
\n

地点

\n

规范有一个关于标题的句子Location

\n
\n

对于 201(已创建)响应,位置值是指请求创建的主要资源。

\n
\n

mdn 也是这么说的。

\n
\n

在创建资源的情况下,它指示新创建的资源的 URL。

\n
\n …

rest http

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

fastapi 自定义响应类作为默认响应类

我正在尝试使用自定义响应类作为默认响应

from fastapi.responses import Response
from bson.json_util import dumps

class MongoResponse(Response):
    def __init__(self, content, *args, **kwargs):
        super().__init__(
            content=dumps(content),
            media_type="application/json",
            *args,
            **kwargs,
        )
Run Code Online (Sandbox Code Playgroud)

当我明确使用响应类时,这工作得很好。

@app.get("/")
async def getDoc():
    foo = client.get_database('foo')
    result = await foo.bar.find_one({'author': 'fool'})
    return MongoResponse(result)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将其作为参数传递给 FastAPI 构造函数时,仅在从请求处理程序返回数据时似乎不会使用它。

app = FastAPI(default_response_class=MongoResponse)

@app.get("/")
async def getDoc():
    foo = client.get_database('foo')
    result = await foo.bar.find_one({'author': 'fool'})
    return result
Run Code Online (Sandbox Code Playgroud)

当我查看下面的堆栈跟踪时,它似乎仍在使用正常的默认响应,即json response

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/blue/podman/test/.venv/lib/python3.6/site-packages/uvicorn/protocols/http/httptools_impl.py", line 390, in run_asgi
    result …
Run Code Online (Sandbox Code Playgroud)

python python-3.x fastapi

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

如何从苗条的组件获取元素绑定

我需要锚元素的边界客户端矩形。

我标记使用 bind:this={someVariable}

但是当我将该代码添加到 svelte 组件时,我会得到一些其他对象 svelte 用于表示组件。

我可以从该绑定访问封闭的元素或类似的东西吗?或者我是否必须用牺牲品包裹每个组件<div />并绑定它?

html javascript svelte

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