小编Mat*_*att的帖子

无法将 Sass 变量导出到 Javascript

我正在尝试将以下 SASS 变量导出到我的 Vue 项目中的 Javascript 中。

_export.sass

:export
    colorvariable: blue
    othercolorvariable: red
Run Code Online (Sandbox Code Playgroud)

我将这篇文章中的回复作为模板。但是,当我尝试在下面导入我的 sass 文件时...

About.vue

<script>
import styles from "@/styles/_export.sass";

export default {
    name: "About",
    data() {
        return { styles };
    }
};
</script>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

WAIT  Compiling...                                                                                                 2:17:03 AM

98% after emitting CopyPlugin

 ERROR  Failed to compile with 1 errors                                                                             2:17:03 AM

 error  in ./src/styles/_export.sass

Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Invalid CSS after '...les/main.sass";': expected 1 selector or at-rule, was "export: {"
        on line 1 …
Run Code Online (Sandbox Code Playgroud)

javascript sass webpack vue.js

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

SQLAlchemy add 与 add_all

我试图弄清楚何时使用 SQLAlchemysession.add以及何时与 SQLAlchemy 一起使用session.add_all

具体来说,我不明白使用add_all. 它可以做所有add能做的事情,那么为什么不总是使用它呢?SQLalchemy文档中没有提及这一点。

python sqlalchemy

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

如何在 multiprocessing.dummy.Pool 中单独命名线程?

我想命名 a 中的线程multiprocessing.dummy.Pool,以便当我threading.enumerate()从主线程调用时可以查看它们的所有名称。pool.apply_async当我调用能够命名线程时,是否可以应用关键字?我宁愿在创建时命名它们,而不是在tester函数内部命名,只是为了简洁。

例如,如果我有下面的示例代码:

import multiprocessing.dummy
from time import sleep
import threading

def tester():
    sleep(2)
    print("running \n")

def run_conc(number_of_threads, fxn):
    pool = multiprocessing.dummy.Pool(processes=number_of_threads)
    for thread in range(number_of_threads):
        pool.apply_async(tester)
    print(threading.enumerate(), "\n")
    pool.close()
    pool.join()

run_conc(3, tester)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到输出:

[<_MainThread(MainThread, started 140735632434048)>, <Thread(SockThread, started daemon 123145521917952)>, <DummyProcess(Thread-1, started daemon 123145527246848)>, <DummyProcess(Thread-2, started daemon 123145532502016)>, <DummyProcess(Thread-3, started daemon 123145537757184)>, <Thread(Thread-4, started daemon 123145543012352)>, <Thread(Thread-5, started daemon 123145548267520)>, <Thread(Thread-6, started daemon 123145553522688)>] 

running 
running 
running 
Run Code Online (Sandbox Code Playgroud)

我希望能够命名该线程列表中的 3 个虚拟线程,以便我可以识别哪个是哪个。或者也许有一种方法可以从内部做到这一点 …

python multithreading python-multithreading

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

Cloud Composer 上的 Airflow 无法导入模块

我正在test_dag.py我的 Google Cloud Storage Bucket 中运行一个 DAG,其结构如下。

gcs-bucket/
    dags/
        test_dag.py
        dependencies/
            __init__.py
            dependency_1.py
            module1/
                __init__.py
                dependency_2.py
Run Code Online (Sandbox Code Playgroud)

Airflow 检测到 DAG, test_dag.py,它尝试从 导入depencies/dependency_1.py,(导入成功)并dependencies/module1/dependency_2.py给出错误Broken DAG: [/home/airflow/gcs/dags/test_dag.py] module 'dependencies' has no attribute 'module1'

导致此问题的线路是from dependencies.module1 import dependency_2.

这似乎向我表明 Cloud Composer 无法从 中的子目录导入,并且当我在此处dependencies/查看它们的依赖项文档时,他们给出的示例仅是下一级目录(并且只有 1 个文件,而不是完整的文件) python 包)。/dags

不过,这是一个奇怪的部分——当我在 Airflow 本地(而不是在 Cloud Composer 上)运行它时,它运行成功。因此,我不知道为什么我的导入可以在本地运行,但不能在 Cloud Composer 上运行。

我还尝试从我的__init__.py文件中导入所有内容,这给了我相同的属性错误,并将我的依赖项上移到gcs-bucket/似乎根本找不到它们的位置。

当我__file__用 DAG/home/airflow/gcs/dags/test_dag.py打印时sys.path …

python airflow google-cloud-composer

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

创建一个函数来自动执行 SQL 连接

我正在使用一个包含 60 多个表的数据库,我正在尝试编写一个 python 函数,该函数接受您希望使用的表,并输出您应该用来连接这些表的连接语句。我已将所有 60 个表放入一个有序字典中,如下所示,其中列出了每个表中的表名称、主键和外键。

OrderedDict({
    'table1_name':{'pk':'id', 'fk':{'table2_name':'table2_id', 'table3_name':'table3_id'}}
    'table2_name':{'pk':'id'},
    'table3_name':{'pk':'id', 'fk':{'table1_name':'table1_id'}
}) #Etc...
Run Code Online (Sandbox Code Playgroud)

我开始编写一个函数,但收效甚微,因为外键相互交织,使得从一个表遍历到另一个表并找到最短路径变得非常复杂。我尝试编写一个函数来执行此操作,如下所示:

def join_creator(main_table, *tables):    
    #Test if we can join other tables directly to main
     try:
        main_table
        main_pk = table_dict[main_table]["pk"]
     except:
        print('No primary key, this cannot be your main table')
        return

     result = f'FROM "public"."{main_table}" \n'
     for table in other_tables:
        try: 
            fk = table_dict[table]['fk'][main_table]
            result += f'LEFT JOIN "public"."{table}" ON {main_table}.{main_pk}={table}.{fk}\n'
        except KeyError:
            pass
     print(result)
Run Code Online (Sandbox Code Playgroud)

总而言之,该函数的输入类似于 join_creator('table_1', 'table_2', 'table_3')

输出将是一个像这样的字符串:

FROM table_1
LEFT JOIN table_2 …
Run Code Online (Sandbox Code Playgroud)

python sql algorithm data-structures

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

pandas.read_sql()中的chunksize参数如何避免将数据加载到内存中

我正在遍历结果 pd.read_sql(query, engine, chunksize=10000)

我在engine(sqlalchemy) 设置为的echo=True情况下执行此操作,以便它打印出 Pandas 正在使用的 db (postgres) 的原始 sql 命令。

打印输出显示 Pandas 只使用我写的查询访问数据库一次,没有任何修改。考虑到这一点,Pandas 如何以块的形式遍历该查询的完整输出,同时又不将所有块一次存储在内存中?

python postgresql sqlalchemy pandas

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

Google Cloud Composer (Apache Airflow) 无法访问日志文件

我正在 Google Cloud Composer(托管 Airflow)中运行 DAG,它在本地 Airflow 中运行良好。它所做的只是打印“Hello World”。但是,当我通过 Cloud Composer 运行它时,我收到错误:

*** Log file does not exist: /home/airflow/gcs/logs/matts_custom_dag/main_test/2020-04-20T23:46:53.652833+00:00/2.log
*** Fetching from: http://airflow-worker-d775d7cdd-tmzj9:8793/log/matts_custom_dag/main_test/2020-04-20T23:46:53.652833+00:00/2.log
*** Failed to fetch log file from worker. HTTPConnectionPool(host='airflow-worker-d775d7cdd-tmzj9', port=8793): Max retries exceeded with url: /log/matts_custom_dag/main_test/2020-04-20T23:46:53.652833+00:00/2.log (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8825920160>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Run Code Online (Sandbox Code Playgroud)

我还尝试过让 DAG 将数据添加到数据库中,实际上成功率是 50%。但是,它始终返回此错误消息(并且不返回其他打印语句或日志)。对于为什么会发生这种情况,任何帮助都非常感激。

airflow google-cloud-composer

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

Docker Compose 日志未显示

当我运行时docker-compose up,Docker将运行以下四个容器。他们运行完全成功。

\n
[+] Running 4/4\n \xe2\xa0\xbf Container redis_1     Started                                                                             5.6s\n \xe2\xa0\xbf Container postgres_1  Started                                                                             4.6s\n \xe2\xa0\xbf Container celery_1    Started                                                                             8.2s\n \xe2\xa0\xbf Container flask_1     Started                                                                            12.3s\n
Run Code Online (Sandbox Code Playgroud)\n

但是,由于flask_1依赖于其他三个容器,因此它最后启动该容器。

\n

这样做的问题是,flask_1启动之前出现的前三个容器的初始控制台输出不会出现。

\n

我看到的输出是

\n
[+] Running 4/4\n \xe2\xa0\xbf Container redis_1     Started                                                                                                              5.1s\n \xe2\xa0\xbf Container postgres_1  Started                                                                                                              3.8s\n \xe2\xa0\xbf Container celery_1    Started                                                                                                              7.7s\n \xe2\xa0\xbf Container flask_1     Started                                                                                                             11.3s\nAttaching to celery_1, flask_1, postgres_1, redis_1\nflask_1     |  * Serving Flask app "run.py" (lazy loading)\nflask_1     |  * Environment: development\nflask_1     | …
Run Code Online (Sandbox Code Playgroud)

python docker

5
推荐指数
0
解决办法
4059
查看次数

Python - 如何验证与 Fabric 模块的 SSH 连接?

我正在尝试使用 Fabric 模块通过以太网通过 SSH 连接到子网上的 Raspberry Pi,但我不知道如何验证连接。

到目前为止我的代码如下

import fabric  

c = fabric.Connection(host = "192.168.3.151", port = 22, user = "pi")  
c.run("touch Desktop/new_file.txt")  
Run Code Online (Sandbox Code Playgroud)

显然我没有在上面的代码中的任何地方输入我的密码“Raspberry”来验证 SSH 连接。我一直在尝试理解 Fabric 文档,但它有点超出我的范围,所以我希望有人能告诉我如何输入密码来验证连接(以及使用 验证任何命令sudo)。

谢谢!

python ssh paramiko fabric raspberry-pi

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

FlaskWTF how to send CSRF token to Vue front-end

I'm working on an app with Vue frontend and Flask backend.

I am writing my forms in Vue but I'm trying to use FlaskWTF for CSRF/XSRF security and for form validation on the back-end.

I've wrapped my app in CSRFProtect() as they say to do in the FlaskWTF docs, if using AJAX.

from flask_wtf.csrf import CSRFProtect

app = build_app()
csrf = CSRFProtect(app)
Run Code Online (Sandbox Code Playgroud)

But I'm stuck on how to send over the CSRF token in a form that is readable …

javascript python flask flask-wtforms vue.js

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

为什么我的 HTML/CSS 网站顶部有空白?

我的 HTML/CSS 项目顶部有这个奇怪的空白,我无法摆脱。我如何摆脱空白?它甚至可以在不使用normalize.css文件的情况下看到,尽管我已经将边距和填充设置为 0,normalize.css所以这不是问题。我在这里做了一个 JSsnippet可能更容易理解。

* {
        margin: 0;
        padding: 0;
        border: 0;
        outline: 0;
        font-size: 100%;
        vertical-align: baseline;
        background: transparent;
        box-sizing: border-box;
    }
Run Code Online (Sandbox Code Playgroud)

这是我项目的 HTML/CSS 代码:

HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>SuperMegaAwesome Landing Page | Matt Bell</title>
        <link rel="stylesheet" type="text/css" href="./Stylesheets/CSS/main.css">
        <link rel="stylesheet" type="text/css" href="./Stylesheets/CSS/normalize.css">
    </head>

    <body>
        <header>
            <p id="logo">Super<span>Mega</span>Awesome</p>

            <nav>
                <a href="#">Home</a>
                <a href="#">Portfolio</a>
                <a href="#">Services</a>
                <a href="#">Get in touch</a>
            </nav>
        </header>

        <section id="hero">
            <div id="hero_overlay">
                <div class="wrapper">
                    <div id="content">
                        <h1 class="title">We …
Run Code Online (Sandbox Code Playgroud)

html css

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

Typescript:变量被分配了一个值但从未使用过,除非它被使用

我收到 Typescript 警告:'isAuthenticated' is assigned a value but never used对于下面的组件 在此输入图像描述

但是,我isAuthenticated在我的组件中使用如下所示。

import { useAuth0 } from '@auth0/auth0-react'

const Profile: React.FC = () => {
    const { user, isAuthenticated, isLoading } = useAuth0()

    if (isLoading) {
        return <div>Loading ...</div>
    }

    return (
        <>
            isAuthenticated && (
            <div>
                <img src={user?.picture} alt={user?.name} />
                <h2>{user?.name}</h2>
                <p>{user?.email}</p>
            </div>
            )
        </>
    )
}

export default Profile
Run Code Online (Sandbox Code Playgroud)

为什么当我使用该变量时会收到此警告?

typescript reactjs

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

在 Dropbox API Python 上实现 OAuth

我正在尝试将用户添加到我的 Dropbox 应用的开发用户中。为此,我似乎必须连接到端点/token/from_oauth1或/和/oauth2/token生成它们的访问令牌。我是使用 API 的新手,并且正在努力理解如何在我的代码中实现 OAuth/OAuth2。我正在使用requests图书馆这样做。

这是我尝试过但对我不起作用的示例:

import requests
import json

url = "https://api.dropboxapi.com/2/auth/token/from_oauth1"

headers = {
    "Authorization": "Basic <APP_KEY>:<APP_SECRET>",
    "Content-Type": "application/json"
}

data = {
    "oauth1_token": "<DROPBOX_USERNAME>",
    "oauth1_token_secret": "<DROPBOX_PASSWORD>"
}

r = requests.post(url, headers=headers, data=json.dumps(data))
Run Code Online (Sandbox Code Playgroud)

但我收到错误 b'Error in call to API function "auth/token/from_oauth1": Invalid value in HTTP header "Authorization": "Basic <APP_KEY>:<APP_SECRET>"'

APP_KEY并且APP_SECRET显然替换为其相应的字符串。

我打电话/token/from_oauth1而不是/oauth2/token. 如果是这样,这个请求我哪里出错了?

python oauth oauth-2.0 dropbox-api python-requests

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