Server=localhost
Reference containers by name, not IP, whenever possible. Otherwise you’ll need to constantly update the IP address you use.
Port=6002
"Postgres": "Server=localhost; Port=6002; Database=post; User ID=postgres; Password=passwd; Pooling=true"
"Postgres": "Server=postgres_db; Port=5432; Database=post; User ID=postgres; Password=passwd; Pooling=true"
version: '3.8'
networks:
postgres-network:
driver: bridge
services:
gchain.posts.api:
image: gchain.posts.api
build:
context: .
dockerfile: GChain.Posts.Api/Dockerfile
ports:
- "80:8080"
networks:
- postgres-network
depends_on:
- postgres_db
postgres_db:
container_name: postgres_post
image: postgres:latest
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-passwd}
POSTGRES_DB: post
volumes:
- postgres-data:/var/lib/postgresql/data
ports:
- "6002:5432"
networks:
- postgres-network
restart: unless-stopped
volumes:
postgres-data:
а как понять, то что перед типом указано - [4] ?В го конкретно в данном случае это будет частью типа, по сути это означает, что массив (именно массив а не слайс) - это отдельный тип, который представляет из себя последовательность из 4 элементов.
в файловом менеджере на vps, где файлы самого next я нашел скрипт, который надо поменять, поменял его
# Build Core lib
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS core-build
WORKDIR /src
COPY ["../Core/Core.csproj", "./Core/"]
RUN dotnet restore "./Core/Core.csproj"
COPY ["../Core/", "./Core/"]
RUN dotnet build "./Core/Core.csproj" -c Release -o /app/core
# Build API proj
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS api-build
WORKDIR /src
COPY ["Service/API/API.csproj", "./Service/API/"]
RUN dotnet restore "./Service/API/API.csproj"
COPY ["Service/API/", "./Service/API/"]
COPY --from=core-build /app/core /lib
RUN dotnet build "./Service/API/API.csproj" -c Release -o /app/service
# Create final image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=api-build /app/service .
ENTRYPOINT ["dotnet", "API.dll"]
Ведётся ли здесь статистика кликов «Отметить решением»?
Но как мне кажется, куда чаще это происходит из-за наплевательского отношения к статистике и обратной связи. Ответ дан, прочитан, принят к сведению, и гуд-бай! А куда-то там кликать никто никого не обязывал.
мало кто пользуется этой возможностью.
может, можно сообразить какой-нибудь способ принуждения?
bind
кэширует текущее значение своего this
в момент своего вызова, т.е. он привязывает именно функцию, а не объект, в котором находится функция. Иначе нельзя было бы вызывать bind на просто функции по типу foo.bind(abc)
. В мануале, кстати, описано что именно она кэширует - там полный список есть: https://developer.mozilla.org/ru/docs/Web/JavaScri... bind
для понимания механизма:function binder(that) {
let targetFunction = this; // кэш целевой функции
return function() { targetFunction.call(that) } // В возвращаемой функции используем кэш
}
let user = {
name: "Tom",
intro() {
console.log("I am " + this.name);
}
}
user.intro.binder = binder
let f = user.intro.binder(user);
setTimeout(f, 1000);
user.name = "Sid";
user.intro = function() {
console.log("Вообще другая функция. name: " + this.name);
}
1. Дизайнер (человек красиво оформляющий всё нарисованное)
2. Программист (что за программист*).
* прочитала про бэкэнд разработчиков и … не совсем поняла – это узкая специализация программистов, они прям необходимы или достаточно одного грамотного программера?
3. Специалист по БД. Это один и тот же человек, что и код пишет?
4. Безопасность. Кто этим занимается, кто прописывает, кто разбирается. Это отдельный человек или навыков программиста достаточно.
Бюджет очень ограничен, поэтому студии однозначно мимо
- самый-самый минимальный набор специалистов на эти последующие этапы, вплоть до полностью рабочего релиза (т.е. например, дизайнер, программист: ява/питон/С, ???).
from mazelib.generate.Prims import Prims
try {
const res = await axios.post(
'https://jsonplaceholder.typicode.com/posts',
JSON.stringify(sendData),
{
headers: {'Content-Type': 'application/json'}
}
);
console.log(res.data);
} catch (error) {
console.error('Error: ', error);
}
В чем смысл этой вставки и для чего она нужна?
img src="URI#1.px.png?r=123123&pr=false&u=URI#2"
style="position: absolute; bottom: 0px; right: 0px; width: 0px; height: 0px;"
Мнение юриста компании: Оплатить 50 тыс защитникам законности, ибо суд те выиграют и будет еще хуже.
Мнение директора: эти деньги списать с того вебмастера, который 10 лет назад эту картинку из интернета опубликовал.
Я думаю, что подобный инцидент не повлечёт за собой никакого судебного разбирательства
from multiprocessing import Lock, Pool
lock = Lock()
with lock:
driver = uc.Chrome(seleniumwire_options=wire_options, options=options)
from multiprocessing import Manager, Pool
manager = Manager()
def get_whoer(proxy: str):
# ...
if __name__ == '__main__':
"""ip:port:login:password"""
with Pool(processes=2) as p:
p.map(get_whoer, proxy_list)
from queue import Queue
from multiprocessing import Pool
queue = Queue()
def get_whoer(proxy: str):
# ...
if __name__ == '__main__':
"""ip:port:login:password"""
proxy_list = list(map(str.rstrip, open('proxy.txt').readlines()))
for proxy in proxy_list:
queue.put(proxy)
with Pool(processes=2) as p:
p.map(get_whoer, range(len(proxy_list)))
преподаватель сказал, что нам нельзя использовать Woocommerce, Elementor для создания магазина.
Подскажите, пожалуйста, как можно создать более менее рабочий магазин?
и прочие функции типичного Интернет магазина.
Не очень понимаю, как возможно реализовать "добавление товара в корзину"
if (!session_id()) {
session_start();
}
function test_session() {
if (!session_id()) {
session_start();
}
}
add_action('init', 'test_session', 1);
function add_to_cart($id, $q = 1) {
if (isset($_SESSION['cart'][$id])) {
$_SESSION['cart'][$id] += $q;
} else {
$_SESSION['cart'][$id] = $q;
}
}
function show_cart() {
if (!empty($_SESSION['cart'])) {
foreach($_SESSION['cart'] as $id => $q) {
$product = get_post($id);
echo "<div>{$product->post_title} (x$q)</div>";
}
} else {
echo "Cart has empty";
}
}