Разрешение относительного URL соединяет каналом к его полному пути

Поскольку приложение работает под другой учетной записью, чем конечный пользователь, вы можете указать имя приложения в строке подключения (например, Application Name=SupportTool) и проверить это в триггере после, откатывая транзакцию по мере необходимости: ]

CREATE TABLE dbo.example(
    col1 int
);
GO

CREATE TRIGGER tr_example
ON dbo.example
AFTER INSERT, UPDATE, DELETE
AS
IF APP_NAME() = N'SupportTool'
BEGIN
    ROLLBACK;
    THROW 50000, 'This update is not allowed using the support tool', 1;
END;
GO

INSERT INTO dbo.example VALUES(1);
GO
58
задан Paused until further notice. 13 November 2010 в 23:43
поделиться

1 ответ

Да, существует urlparse.urljoin , или urllib.parse.urljoin для Python 3.

>>> try: from urlparse import urljoin # Python2
... except ImportError: from urllib.parse import urljoin # Python3
...
>>> urljoin("http://www.asite.com/folder/currentpage.html", "anotherpage.html")
'http://www.asite.com/folder/anotherpage.html'
>>> urljoin("http://www.asite.com/folder/currentpage.html", "folder2/anotherpage.html")
'http://www.asite.com/folder/folder2/anotherpage.html'
>>> urljoin("http://www.asite.com/folder/currentpage.html", "/folder3/anotherpage.html")
'http://www.asite.com/folder3/anotherpage.html'
>>> urljoin("http://www.asite.com/folder/currentpage.html", "../finalpage.html")
'http://www.asite.com/finalpage.html'

для копии-и-вставки:

try:
    from urlparse import urljoin  # Python2
except ImportError:
    from urllib.parse import urljoin  # Python3
101
ответ дан Martin Thoma 24 November 2019 в 18:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: