小编ere*_*wok的帖子

Rust的柴油图书馆与Postgres的时间戳

今天我一直在看看Rust的Diesel ORM,继续这个演练,我无法Timestamp上班.

Cargo.toml

[dependencies]
diesel = { version = "0.6.2", features = ["chrono"] }
diesel_codegen = { version = "0.6.2", default-features = false, features = ["nightly", "postgres"] }
dotenv = "0.8.0"
dotenv_macros = "0.8.0"
Run Code Online (Sandbox Code Playgroud)

models.rs

#[derive(Queryable)]

pub struct Author {
    pub id: i32,
    pub first_name: String,
    pub last_name: String,
    pub email: String
}

pub struct Post {
    pub id: i32,
    pub author: Author,
    pub title: String,
    pub body: String,
    pub published: bool,
    pub created: …
Run Code Online (Sandbox Code Playgroud)

postgresql rust rust-diesel

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

使用postgresql-simple创建数据库连接时的GHCI Segfault

尝试使用postgresql-simple在GHCI中创建数据库连接时,我得到GHCI段错误.

我使用的是GHC 8.0.1,OSX 10.11.16.我没有系统GHC,只有堆栈安装的系统.

如果我在我的项目中执行以下操作,则会出现以下错误:

$ stack ghci
Loaded GHCi configuration from /private/var/folders/wb/vvtxjd7n2qz02f571yjyr9j40000gs/T/ghci62972/ghci-script
gchi> :set -XOverloadedStrings
gchi> import Database.PostgreSQL.Simple
gchi> let connstr = "host=localhost port=5432 user=myusername password=mypass dbname=local"
gchi> conn <- connectPostgreSQL connstr
zsh: segmentation fault  stack ghci
Run Code Online (Sandbox Code Playgroud)

我认为它可能值得查看它提到的文件,所以这里有以下内容:

> cat /private/var/folders/wb/vvtxjd7n2qz02f571yjyr9j40000gs/T/ghci62972/ghci-script
:load "/Users/erewok/projects/haskell/simpleservantblog/app/Main.hs" "Api" "Api.Post" "Api.User" "Config" "Html.Home" "Models.Author" "Models.Post"
:module + Api Api.Post Api.User Config Html.Home Models.Author Models.Post
Run Code Online (Sandbox Code Playgroud)

它是从项目加载的所有模块的列表(编译并运行正常).


这是从启动ghci到seg故障的所有内容的完整输出:

$ stack ghci
The following GHC options are incompatible with GHCi and have not been passed …
Run Code Online (Sandbox Code Playgroud)

haskell ghci haskell-stack

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

Django QueryDict为空,带有request.POST但在request.GET中填充

简短版本:在django网站上,我可以从中获取值,request.GET但不是request.POST响应Twilio的请求.我怀疑它与csrf有关,但我不确定如何调试问题.详情如下.

长版: 我正在帮助一个朋友进行一个项目,我们正在使用Twilio REST API对SMS进行医学调查.我在该域上有一个域和一个非常简单的django构建的站点,我建立的只是为了更好地熟悉django,所以我们正在使用它.

我们正在收集对我们调查的短信回复,并且作为Twilio API的一部分,它会将我们号码的任何回复发送到帐户下指定的网址,因此我们的响应定位如下:

...mydomain.com/some_page/another_page/
Run Code Online (Sandbox Code Playgroud)

然后,Twilio请求看起来如下所示:

...mydomain.com/some_page/another_page/?AccountSid=###SOME_LONG_ACCOUNT_SIDE&From=%2BPHONE_NUMBER&Body=bla+BLA+bla+BLA&SmsSid=##MESSAGE_ID_KEY&SmsMessageSid=##MESSAGE_ID_KEY&FromCity=Santa+Cruz&FromState=California...
Run Code Online (Sandbox Code Playgroud)

工作守则

我正在测试传入的请求是否包含在我的AccountSid内部(与数据库中的值相比),在我views.py的应用程序中,我有一些看起来像以下内容(这样可行):

from our_app import TwilioAccount
our_account = TwilioAccount.objects.get(id=1)

def twilio_response(request):
    assert request.GET.get('AccountSid', None) == our_account.account_sid
    ## log the incoming request to the database under survey responses...
Run Code Online (Sandbox Code Playgroud)

非工作守则

如果我登录到我们的Twilio帐户,并切换要求的方法POST,然后我转的是我的数据采集到request.POST,上述断言语句失败.进一步调试显示我的QueryDict在POST下是空的POST: {},因此没有抓取键值.

我认为这可能是因为POST在django下需要一个csrf_token,但我认为检查AccountSid是相当不错的,所以我导入csrf_exempt并包装上面的函数:

@csrf_exempt
def twilio_response(request):
    assert request.POST.get('AccountSid', None) == our_account.account_sid
    ## log the incoming request to the database …
Run Code Online (Sandbox Code Playgroud)

python django python-2.x twilio

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

具有手动运行和用户设置变量的 Azure Devops Pipeline:如何检查条件中的变量?

希望有人能帮我解决这个问题,回顾一下我的 git 日志,我现在已经尝试了 14 种不同的方法来尝试让它发挥作用。这是场景:

  • 我在 UI 中创建了一个名为deploy_custom_env“用户可以在运行时设置变量”的变量。我将其初始化为“默认”,但我希望用户在开始手动运行时覆盖它。

  • 我试图在condition我的一些管道阶段中使用这个变量。

  • 我尝试过很多很多不同的事情。这里有些例子:

第一的:

condition: ne(variables.deploy_custom_env, 'default')
Run Code Online (Sandbox Code Playgroud)

condition: ne('${{ variables.deploy_custom_env }}', 'default')
Run Code Online (Sandbox Code Playgroud)

variables:
- name: isCustomEnv
  value: ne[($(deploy_custom_env), 'default')]
Run Code Online (Sandbox Code Playgroud)

乃至

variables:
  - name: isCustomEnv
    value: ne[(variables.deploy_custom_env, 'default')]
Run Code Online (Sandbox Code Playgroud)

有趣的是,当尝试使用上述内容时,以下两种情况都会导致跳过阶段:

condition: eq(variables.isCustomEnv, true)
condition: eq(variables.isCustomEnv, false)
Run Code Online (Sandbox Code Playgroud)

这是否意味着它既是 又是truefalse?(当然,我在开玩笑:我不知道这实际上会评估什么。)我也尝试过启用System.debug和检查“启用系统诊断”,但是当我的阶段被跳过时,我真的看不出这些是什么变量正在评估。

我将不胜感激任何可以帮助我解决这个问题的建议或文档。这肯定是人们做的事情吗?另外,建议任何来自 Azure 的人阅读:我很乐意在文档中的某个地方看到这个示例。

我查看了以下内容来尝试回答这个问题:

在后者中,我看到了编译时和运行时之间的区别,并附有以下注释:

运行时和编译时表达式语法之间的区别主要在于可用的上下文。在编译时表达式 (${{ }}) 中,您可以访问参数和静态定义的变量。在运行时表达式 ($[ ]) 中,您可以访问更多变量,但不能访问参数。

这似乎是相关的,但我如何将其转化为在我的condition系统中有效的东西?

azure-devops azure-devops-pipelines

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