Руководство по Python Bottle (Перевод) Часть 3 - Маршрутизация запросов
PythonВ предыдущей части (Руководство по Python Bottle (Перевод) Часть 2 — Hello World) мы создали простое Web приложение, с одним единственным маршрутом, вот та часть кода с маршрутизацией из примера «Hello WOrld»:
@route('/hello')
def hello():
return "Hello World!"
В этом примере декоратор route() связывает URL путь с вызываемой функцией, и добавляет новый маршрут.
Теперь давайте добавим ещё один маршрут:
@route('/')
@route('/hello/<name>')
def greet(name='Незнакомец'):
return template('Здравствуй {{name}}, как дела?', name=name)
(Не забываем ипортировать необходимые библиотеки: from bottle import template)
Данный пример демонстрирует сразу две важные вещи: Вы можете привязывать более одного маршрута к одной вызываемой функции, и вы можете добавлять шаблоны URL адресов и получать доступ к параметрам по ключевым словам.
Читаль далее...
FAR Manager под Ubuntu Linux
UbuntuКак же мне его не хватало! Случайно наткнулся на него в интернете, изначально искал на официальном сайте, но там не нашёл. В сравнении с MC — на мой субъективный взгляд FAR выигрывает, прикипел я к нему. :)
Установил.
И о чудо! Он работает!
Функционал конечно по скуднее, нежели в оригинале под Windows, но самое необходимое есть.
Доступен исходник проекта на Git.
Для установки можно просто взять готовые установочные пакеты, здесь.
Switch Expressions - Выражения переключатели - Новинка в C# 8
Язык программирования C#Хорошая новость, теперь можно реализовать SWITCH по новому.
В C# 8 версии вводятся выражения-переключатели, которые реализуют более краткий синтаксис возвращения значения.
Вот синтаксис выражения SWITCH на примере:
static string Display(object o) => o switch
{
Point { X: 0, Y: 0 } => "origin",
Point { X: var x, Y: var y } => $"({x}, {y})",
_ => "unknown"
};
В этом примере сначала проверяется соответствие шаблону типа Point, а затем шаблону свойств внутри {фигурных скобок}.
Затем символ подчеркивания "_" Описывает шаблон сброса, аналогичный «default:» для операторов switch.
Далее
Класс для транслитерации предложений на Русском по ГОСТ и ISO на C# под .NET Core
.NET CoreБывает так, что приходится заниматься преобразованием предложения на русском в русский текст но на латинице (транслит), например при отправки СМС для сокращения затрат — поскольку латиницей обычно и влазит больше и стоит дешевле. Или при приведении ссылок для сайта в удобный вид без кириллицы, или просто для пересылки информации для решения проблем с кодировкой таким экзотическим способом, вариантов где это может пригодиться довольно много.
В этой публикации будет приведен пример класса который реализует функционал транслитерации в двух стандартах: ГОСТ и ISO. При желании, разобравшись в коде (он довольно прост и компактен) можно легко добавить и другие стандарты, но приведенные два мне кажутся наиболее используемыми.
Crop Image - Пример вырезания изображения с изменением размера и использованием библиотеки SixLabors.ImageSharp на .NET Core
.NET CoreПростой пример класса с методом для получения квадратного превью изображения в .NET Core, при помощи библиотеки SixLabors.ImageSharp.
Пример:
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.PixelFormats;
using System;
using SixLabors.ImageSharp.Formats.Jpeg;
namespace TransformImage.Methods
{
public static class ImgActions
{
public static void CropImage(string path, string path_in, int size)
{
try
{
// Открывает файл, определяет тип файла и декодирует
using (Image<Rgba32> image = Image.Load(path))
{
// Теперь изображение находится в независимой от формата файла структуре в памяти как серия Rgba32 пикселей
int line = image.Height < image.Width ? image.Height : image.Width;
// Вырезаем часть изображения (квадрат по минимальной стороне)
image.Mutate(tx => tx.Crop(line, line));
// Изменяем размер изображения
image.Mutate(ctx => ctx.Resize(size, size));
// Записываем в заданном формате с указанным качеством, без метаданных для экономии места
image.Save(path_in,new JpegEncoder{Quality = 100, IgnoreMetadata = true});
}
}
catch (Exception ex)
{
Program.logger.Error(ex, ex.Message);
}
}
}
}
Читаль далее...
SixLabors.ImageSharp SixLabors ImageSharp NET Core C# Crop Image Image Crop Resize
Пример настройки Web приложения .NET Core в Ubuntu под Apache
UbuntuСейчас компания Microsoft всё больше сил уделяет .NET Core, который является по настоящему кроссплатформенным и универсальным. Поэтому не лишним будет зафиксировать процесс настройки доступа к сайту написанному на .NET Core в Ubuntu Linux с использованием Apache.
Итак приступим.
Если у вас не установлен dot-net на Ubuntu, то предварительно устанавливаем его:
Подключаем репозиторий (В нашем случае для версии Ubuntu 16.04, для разных версий можно посмотреть здесь)
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
Устанавливаем компоненты
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2
Теперь берем свой готовый сайт на .NET Core (или делаем простенький пример как здесь), и размещаем его в папке например:
var/net/sample
Читаль далее...
Пример синхронного AJAX запроса на JQuery и .NET Core
.NET CoreВ данной публикации приведен пример того как выполнить асинхронный запрос к серверу без перезагрузки текущей страницы, с помощью JQuery на .NET Core.
Итак приступим.
Для начала нам потребуется создать проект Web сайта на .NET Core, например как здесь: https://kbss.ru/blog/netcore/271.html
Теперь модифицировать или создать новый контроллер Home с двумя методами:
Index — отображает страницу
GetInfo — обрабатывает запрос и возвращает ответ в формате JSON
Авторизация в приложении через Вконтакте VK на C#
.NET CoreДанная публикация написана как простая инструкция для себя, на память, чтобы не забыть.
Предложенный вариант использовался для авторизации через токен VK в серверном приложении.
Для начала создадим метод отправки HTTP запроса и получения ответа от сервера:
/// <summary>
/// Отправляем запрос на получение
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
private static string GetRequest(string host, string req)
{
string str = "";
var Vk = new HttpClient();
Vk.DefaultRequestHeaders.Add("Connection", "close");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(req);
request.UseDefaultCredentials = true;
request.PreAuthenticate = true;
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";
request.Host = host;
request.UserAgent = "RM";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = false;
using (HttpWebResponse responsevk = (HttpWebResponse)request.GetResponse())
using (var stream = responsevk.GetResponseStream())
using (var streamReader = new StreamReader(stream, Encoding.UTF8))
{
str = streamReader.ReadToEnd();
}
return str;
}
Читаль далее...
Cors Policy в .Net Core Web Api - добавляем поддержку
Язык программирования C#Для добавления поддержки CorsPolicy в .NET Core приложении открываем файл Startup.cs и меняем методы ConfigureServices и Configure, следующим образом:
ConfigureServices
public void ConfigureServices(IServiceCollection services)
{
// Добавляем CorsPolicy
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
Читаль далее...
Установка русской кодировки на уже созданную базу данных (смена COLLATION)
MS SQL - по необходимостиПолезный пример изменения кодировки (COLLATION) на уже созданной базе данных.
В данном примере устанавливается русская кодировка: Cyrillic_General_CI_AS
USE master;
GO
-- Переводим БД в single-user mode
ALTER DATABASE [имя_базы_данных]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
-- Меняем кодировку COLLATION
ALTER DATABASE [имя_базы_данных]
COLLATE Cyrillic_General_CI_AS ;
GO
-- Переводим БД обратно в multi-user mode
ALTER DATABASE [имя_базы_данных]
SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO
--Проверяем настройки COLLATION.
SELECT name, collation_name
FROM sys.databases
WHERE name = 'имя_базы_данных';
GO
Читаль далее...
Разновидности терминалов Motorola Symbol MC3090
В этой публикации хотелось бы поделиться информацией о разновидностях терминалов сбора данных Symbol (читать далее...)
571Работа с Postgresql в C#
Не так давно занялся разработкой приложения на C# работающего на базе PostreSQL, появилась информаци (читать далее...)
396Работа с MySQL в C#
Надеюсь данная публикация не даст читателям повторить мои ошибки и поможет сделать изначально правил (читать далее...)
316Работа с XML в Oracle PL/SQL (Часть 1)
В этой публикации я приведу основные способы работы с XML в Oracle, которые сам использую. Здесь буд (читать далее...)
281Распознавание автомобильного номера с изображения на C# (.NET)
Довелось мне не так давно помогать с запуском одного проекта под .NET на WCF — под x64 систему, прое (читать далее...)
248Изменение размера изображения в C#
Очень часто при добавлении изображений в проект приходится изменять размеры изображения, и часто хоч (читать далее...)
231OpenXML - Пример создания Excel файла на C#
В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML. Отличие это (читать далее...)
222XML в Oracle PL/SQL (Часть 2 - Выборки в виде XML)
В предыдущей публикации были рассмотрены некоторые приёмы манипуляции с XML в Oracle, теперь рассмот (читать далее...)
213C# .NET - Получение информации по пользователю в домене
В данной публикации приведен пример получения информации по пользователю в домене AD с использование (читать далее...)
192Работа с FTP сервером из C#
Наверное многие сталкивались с необходимостью создать простой FTP клиент для своих нужд на C#. Вот и (читать далее...)
190