今天我一直在看看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-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) 简短版本:在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) 希望有人能帮我解决这个问题,回顾一下我的 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)
这是否意味着它既是 又是true和false?(当然,我在开玩笑:我不知道这实际上会评估什么。)我也尝试过启用System.debug和检查“启用系统诊断”,但是当我的阶段被跳过时,我真的看不出这些是什么变量正在评估。
我将不胜感激任何可以帮助我解决这个问题的建议或文档。这肯定是人们做的事情吗?另外,建议任何来自 Azure 的人阅读:我很乐意在文档中的某个地方看到这个示例。
我查看了以下内容来尝试回答这个问题:
在后者中,我看到了编译时和运行时之间的区别,并附有以下注释:
运行时和编译时表达式语法之间的区别主要在于可用的上下文。在编译时表达式 (${{ }}) 中,您可以访问参数和静态定义的变量。在运行时表达式 ($[ ]) 中,您可以访问更多变量,但不能访问参数。
这似乎是相关的,但我如何将其转化为在我的condition系统中有效的东西?
azure-devops ×1
django ×1
ghci ×1
haskell ×1
postgresql ×1
python ×1
python-2.x ×1
rust ×1
rust-diesel ×1
twilio ×1