小编Jes*_*ebb的帖子

'b'字符在字符串文字前面做了什么?

显然,以下是有效的语法

my_string = b'The string'
Run Code Online (Sandbox Code Playgroud)

我想知道:

  1. 这是什么b字在前面的字符串是什么意思?
  2. 使用它有什么影响?
  3. 使用它的适当情况是什么?

我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它表示b用于表示字符串是二进制的,而不是Unicode,这是代码与PHP版本兼容所需的代码<6 ,当迁移到PHP 6.我不认为这适用于Python.

我确实在Python网站上找到了关于使用相同语法的字符将字符串指定为Unicode的文档u.不幸的是,它没有提到该文档中任何地方的b字符.

而且,只是出于好奇,有没有比多符号bu是做其他事情?

python string unicode binary

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

如何在SQL Server中使用单个ALTER TABLE语句删除多个列?

我想编写一个SQL命令来从一个ALTER TABLE语句中删除单个表中的多个列.

来自MSDN的ALTER TABLE文档 ......

DROP { [CONSTRAINT] constraint_name | COLUMN column_name }
Run Code Online (Sandbox Code Playgroud)

指定从表中删除constraint_name或column_name.如果兼容级别为65或更早,则不允许使用DROP COLUMN.可以列出多个列和约束.

它说mutliple列可以在语句中列出,但语法不显示可选的逗号或任何甚至暗示语法的东西.

我应该如何编写SQL以在一个语句中删除多个列(如果可能)?

sql t-sql sql-server alter

269
推荐指数
5
解决办法
36万
查看次数

模拟函数以引发异常以测试except块

我有一个函数(foo)调用另一个函数(bar).如果调用bar()引发一个HttpError,我想特别处理它,如果状态代码是404,否则重新加注.

我试图围绕这个foo函数编写一些单元测试,嘲笑调用bar().不幸的是,我无法通过模拟调用bar()来引发由我的except块捕获的异常.

这是我的代码,说明了我的问题:

import unittest
import mock
from apiclient.errors import HttpError


class FooTests(unittest.TestCase):
    @mock.patch('my_tests.bar')
    def test_foo_shouldReturnResultOfBar_whenBarSucceeds(self, barMock):
        barMock.return_value = True
        result = foo()
        self.assertTrue(result)  # passes

    @mock.patch('my_tests.bar')
    def test_foo_shouldReturnNone_whenBarRaiseHttpError404(self, barMock):
        barMock.side_effect = HttpError(mock.Mock(return_value={'status': 404}), 'not found')
        result = foo()
        self.assertIsNone(result)  # fails, test raises HttpError

    @mock.patch('my_tests.bar')
    def test_foo_shouldRaiseHttpError_whenBarRaiseHttpErrorNot404(self, barMock):
        barMock.side_effect = HttpError(mock.Mock(return_value={'status': 500}), 'error')
        with self.assertRaises(HttpError):  # passes
            foo()

def foo():
    try:
        result = …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking python-2.7 python-mock

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

创建NuGet包时,不要包含packages.config文件中的依赖项

我正在使用Nuget来创建包.我想创建一个包,其中不包含.nuspec任何其他NuGet包的依赖(在)文件中.我的项目确实在其packages.config文件中定义了NuGet包依赖项.

首先我创建.nuspec文件...

C:\code\MySolution>.nuget\nuget.exe spec MyProject\MyProject.csproj
Run Code Online (Sandbox Code Playgroud)

我将生成的.nuspec文件编辑为最小,没有依赖项.

<?xml version="1.0"?>
<package >
  <metadata>
    <id>MyProject</id>
    <version>1.2.3</version>
    <title>MyProject</title>
    <authors>Example</authors>
    <owners>Example</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Example</description>
    <copyright>Copyright 2013 Example</copyright>
    <tags>example</tags>
    <dependencies />
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

然后我构建解决方案并创建一个NuGet包......

C:\code\MySolution>.nuget\nuget.exe pack MyProject\MyProject.csproj -Verbosity detailed
Run Code Online (Sandbox Code Playgroud)

这是该命令的输出......

Attempting to build package from 'MyProject.csproj'.
Packing files from 'C:\code\MySolution\MyProject\bin\Debug'.
Using 'MyProject.nuspec' for metadata.
Found packages.config. Using packages listed as dependencies

Id: MyProject
Version: 1.2.3
Authors: Example
Description: Example
Tags: example
Dependencies: Google.ProtocolBuffers (= 2.4.1.473)

Added file 'lib\net40\MyProject.dll'.

Successfully …
Run Code Online (Sandbox Code Playgroud)

dependencies package nuget nuget-package nuspec

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

如何在复合id键属性上映射"insert ='false'update ='false'",该属性也用于一对多FK?

我正在使用现有的数据库架构处理遗留代码库.现有代码使用SQL和PL/SQL在DB上执行查询.我们的任务是使项目数据库引擎不可知的一小部分(最初,最终改变一切).我们选择使用Hibernate 3.3.2.GA和"*.hbm.xml"映射文件(而不是注释).遗憾的是,更改现有架构是不可行的,因为我们无法回退任何遗留功能.

我遇到的问题是当我试图映射单向,一对多的关系时,FK 也是复合PK的一部分.这是类和映射文件......

CompanyEntity.java

public class CompanyEntity {
    private Integer id;
    private Set<CompanyNameEntity> names;
    ...
}
Run Code Online (Sandbox Code Playgroud)

CompanyNameEntity.java

public class CompanyNameEntity implements Serializable {
    private Integer id;
    private String languageId;
    private String name;
    ...
}
Run Code Online (Sandbox Code Playgroud)

CompanyNameEntity.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.jboss.org/dtd/hibernate/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.example">

    <class name="com.example.CompanyEntity" table="COMPANY">
        <id name="id" column="COMPANY_ID"/>
        <set name="names" table="COMPANY_NAME" cascade="all-delete-orphan" fetch="join" batch-size="1" lazy="false">
            <key column="COMPANY_ID"/>
            <one-to-many entity-name="vendorName"/>
        </set>
    </class>

    <class entity-name="companyName" name="com.example.CompanyNameEntity" table="COMPANY_NAME">
        <composite-id>
            <key-property name="id" column="COMPANY_ID"/>
            <key-property name="languageId" …
Run Code Online (Sandbox Code Playgroud)

hbm hibernate-mapping hbmxml hibernate-onetomany

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

为什么此SQL查询导致"不明确的列名称"错误?

我有一个SQL查询无法执行:

select p.PersonID, CreatedDate, * from dbo.Person p 
join dbo.PotentiallyFraudulentPeople pfp on p.PersonID= pfp.PersonID 
order by CreatedDate 
Run Code Online (Sandbox Code Playgroud)

Person表的PK为PersonID(int).该PotentiallyFraudulentPeople视图是一个查询Person与其他表连接来决定,如果我们信任的人或不表.该PotentiallyFraudulentPeople视图只有一个列:PersonID.

当我尝试执行此查询时,我收到此错误:

消息209,级别16,状态1,行3
不明确的列名称'CreatedDate'.

我知道这个错误告诉我CreatedDate列名称不明确,我需要用表格的别名'p'作为前缀.

此查询有效:

select p.PersonID, CreatedDate, * from dbo.Person p 
join dbo.PotentiallyFraudulentPeople pfp on p.PersonID= pfp.PersonID 
order by p.CreatedDate 
Run Code Online (Sandbox Code Playgroud)

我不明白的是为什么我需要在ORDER BY语句中而不是SELECT列列表中使用'p'别名.另外,我不明白为什么我需要使用表别名,因为PotentiallyFraudulentPeople视图甚至没有CreatedDate列.

谁能解释这种奇怪的行为?

我正在使用SQL Server 2008和SSMS来执行查询.

更新
此外,我尝试CreatedDateSELECT列列表中删除列,然后查询不再需要"p"别名ORDER BY.所以这个查询也可以:

select p.PersonID, * from …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

ListItem光盘显示在垂直底部

我的页面上有几个未排序的列表.两个列表都使用list-style: disc inside;.每个列表的列表项都有几个div.问题是列表项的内容占用多行,并且光盘垂直出现在多行列表项的底部.

这是一个屏幕截图,显示了我遇到的问题.请注意,我从类似的问题中偷走了图像,它不是我的HTML或CSS.

这是我的HTML的条纹版本:

<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="billing_form">
<div id="purchase_items">
    <h2>Your purchase</h2>
    <h4>Items:</h4>
    <div class="items">
        <ul>
            <li>
                <div class="item">First Product - one year license</div>
                <div class="price">$99.00 USD</div>
            </li>
            <li>
                <div class="item">Second product & 3 year Product Plan</div>
                <div class="price">$125.00 USD</div>
            </li>
        </ul>
    </div>
    <div class="subtotal">SUBTOTAL: $224.00 USD</div>
    <h4>Discounts:</h4>
    <div class="discount">
        <ul>
            <li>
                <div class="item">A really long discount item name - with extra info on three lines!</div>
                <div …
Run Code Online (Sandbox Code Playgroud)

html css vertical-alignment html-lists

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

在进行大量并发INSERT时如何避免"违反UNIQUE KEY约束"

我正在执行许多并发SQL INSERT语句,这些语句在UNIQUE KEY约束上发生冲突,即使我还在单个事务中检查给定键的现有记录.我正在寻找一种消除或最小化碰撞量的方法,而不会损害性能(太多).

背景:

我正在开发一个ASP.NET MVC4 WebApi项目,它接收大量的HTTP 记录POST请求INSERT.它每秒大约需要5K - 10K的请求.该项目的唯一责任是重复记录和汇总记录.这是非常重写; 它具有相对少量的读取请求; 所有这些都使用了一个Transaction IsolationLevel.ReadUncommitted.

数据库架构

这是DB表:

CREATE TABLE [MySchema].[Records] ( 
    Id BIGINT IDENTITY NOT NULL, 
    RecordType TINYINT NOT NULL, 
    UserID BIGINT NOT NULL, 
    OtherID SMALLINT NULL, 
    TimestampUtc DATETIMEOFFSET NOT NULL, 
    CONSTRAINT [UQ_MySchemaRecords_UserIdRecordTypeOtherId] UNIQUE CLUSTERED ( 
        [UserID], [RecordType], [OtherID] 
    ), 
    CONSTRAINT [PK_MySchemaRecords_Id] PRIMARY KEY NONCLUSTERED ( 
        [Id] ASC 
    ) 
) 
Run Code Online (Sandbox Code Playgroud)

存储库代码

以下是Upsert导致异常的方法的代码:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using Dapper;

namespace MyProject.DataAccess …
Run Code Online (Sandbox Code Playgroud)

c# sql database sql-server dapper

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

.NET使用传递依赖/引用

我有一个包含3个项目的Visual Studio解决方案:

  • MyWebSite(A)
  • 商业模式(B)
  • 持久性(C)

Persistence,project C,依赖NHibernate并包含所有存储库接口,Hibernate这些存储库的实现以及映射到数据库表的类.

BusinessModel,project B,依赖于C并包含表示业务域实体的所有服务类和类.这些服务使用存储库来检索数据,然后将这些数据转换为业务表示形式在其自己的接口中.

MyWebSite,project A,依赖于A并包含所有MVC类/文件.这里的MVC控制器使用服务类B来执行任何业务逻辑功能.该级别没有任何知识表明项目B使用项目C的存储库来执行其操作.

在一个完美的世界中,我认为该项目A应该参考B哪些参考C文献NHibernate.这似乎不是真的.我发现该项目A需要参考B CNHibernate!我不喜欢我的Web应用程序需要了解我的后端架构的想法,我特别不希望它意识到我正在使用NHibernate我的ORM 这一事实.

有没有办法告诉这些项目在解析引用时使用传递依赖?

我的项目是Visual Studio 2010中的.NET 4,如果该信息有所不同.

编辑:我找到了这个相关问题的答案,这个问题解释了这些引用只有在项目的项目C浮出水面时才需要B.我一直非常坚定不要在层之间有任何泄漏,我知道Hibernate类只用于C所以也许我只是不理解正确...

.net reference n-tier-architecture transitive-dependency

9
推荐指数
0
解决办法
1522
查看次数

自定义DateTime格式字符串无法按预期工作

我有一个自定义DateTime格式字符串:"M/d/yyyy h:m:ss tt".

例如,日期为'2012年9月18日@中午',我希望它的输出类似于"9/18/2012 12:0:00 PM".

时间似乎正确格式化,但日期部分搞砸了.我看到日期格式化"MM-dd-yyyy",我无法弄清楚为什么.

以下是一些重现问题的示例代码:

var datetime = DateTime.Now;
Console.WriteLine("Date: " + datetime.ToString("MMMM d, yyyy"));       // Date: October 11, 2012 --> correct
Console.WriteLine("Date: " + datetime.ToString("M/d/yyyy h:m:ss tt")); // Date: 10-11-2012 4:34:17 PM --> wrong
Run Code Online (Sandbox Code Playgroud)

以下是自定义DateTime格式字符串MSDN文档.

关于我做错什么的任何想法?我怎样才能达到理想的效果?

编辑:
示例代码的最后一行中不正确的是有连字符而不是斜线,我不知道为什么.

此外,我的计算机语言设置为英语(加拿大).但是我的"短"或"长"日期格式看起来都不是M-d-yyyy这样,我不知道它来自哪里.

c# string datetime .net-4.0 datetime-format

8
推荐指数
2
解决办法
7790
查看次数