Я не знаю с какой стороны уже подступиться и как делать такой эффект. Я пробовал вешать position: sticky на блок и определять высоту родительского блока. Но это работает при медленном скролле, при быстром блок пролетает не успевая закончить слайдер.
Но всё оказалось не так как я предполагал и многие пишут, что джуны-программисты должны работать в офисе.
Может всё-таки можно найти удалённую работу в разработке ну или хотя бы в принципе в IT за более менее человеческую плату
Each child in a list should have a unique "key" prop
// ..
{items.map((i) => (
<React.Fragment key={i.id}>
<Item {...i}/>
</React.Fragment>
))}
// ..
// ..
{items.map((i) => (
<Item key={i.id} {...i}/>
))}
// ..
Содержимое сайтов будет практически одинаковым (каталог, цены).
Как пример, есть сайты:
spb.vorota-group.ru
vorota-group.ru
Они отлично ранжируются в своих регионах. Как мне сделать так же? Я в замешательстве.
Может ли метатег h2 идти сразу после h1?
Существует ли аналог Proxy и Reflect (как в JS) для Python?
class Proxy:
def __init__(self, target):
self.target = target
def __getattr__(self, name):
print(f"Пытаемся получить атрибут {name}")
if isinstance(self.target, dict):
return self.target.get(name, None)
return getattr(self.target, name, None)
def __setattr__(self, name, value):
if name == 'target':
super().__setattr__(name, value)
else:
print(f"Устанавливаем значение {value} для атрибута {name}")
if isinstance(self.target, dict):
self.target[name] = value
else:
setattr(self.target, name, value)
obj = Proxy({'x': 1})
print(obj.x)
obj.x = 2
class Proxy:
def __call__(self, *args, **kwargs):
print("Объект вызван как функция")
p = Proxy()
p()
obj = {'x': 1}
print(getattr(obj, 'x', None))
setattr(obj, 'x', 2)
class Meta(type):
def __new__(cls, name, bases, dct):
print(f"Создается класс {name}")
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
massage_handler
- массаж обработчика?await message.answer
вышла из чата?@dp.massage_handler()
async def echo(message: types.Message):
await message.answer(message.text)
from aiogram import Bot, Dispatcher, executor, types
# Bot init
bot = Bot(token="6563641220:AAFBWH_TQ4SW_Zk-6sVyBpeX5rSJitWoRQM")
dp = Dispatcher(bot)
# echo
@dp.message_handler()
async def echo(message: types.Message):
await message.answer(message.text)
# Запуск лонг-полинг
if __name__ == "__main__":
executor.start_polling(dp, skip_updates=True)
Подскажите, как лучше организовать поиск сотрудников, если их больше 2000, делать один запрос к API и получать сразу всех из БД(mysql) и среди них искать нужного или каждый раз делать поиск конкретного пользователя?
const employees = [
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
},
{
"id": 2,
"name": "Ervin Howell",
"username": "Antonette",
"email": "Shanna@melissa.tv",
"address": {
"street": "Victor Plains",
"suite": "Suite 879",
"city": "Wisokyburgh",
"zipcode": "90566-7771",
"geo": {
"lat": "-43.9509",
"lng": "-34.4618"
}
},
"phone": "010-692-6593 x09125",
"website": "anastasia.net",
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}
},
]
const employee = employees.find(emp => emp.id === 2);
Делаю форму регистрации на Next.js, 4 страницы. Хочу ускорить загрузку страниц, но не понимаю, какой рендеринг для этого использовать
У меня есть сайт с онлайн-курсами, на котором учителя создают курсы. Ученики покупают эти курсы. Как мне теперь делать переводы учителю (выплачивать его долю) от имени моего ИП?
Я даже примерно не представляю, где об этом узнать. Может где-то чаты тематические есть?
export const routes = [
{ path: '/', element: <MainPage /> },
{
path: '/posts',
element: <Posts />,
children: [
{ path: ':postId', element: <PostIdPage /> }
]
},
{ path: '/about', element: <About /> },
{ path: '/*', element: <Error /> },
]
const renderRoutes = (routes) => {
return (
<Routes>
{routes.map((route, index) => (
<Route key={index} path={route.path} element={route.element}>
{route.children && renderRoutes(route.children)}
</Route>
))}
</Routes>
);
};
export default function App() {
return (
<div>
{renderRoutes(routes)}
</div>
);
}
from selenium import webdriver
import requests
import os
# юзаем хром
driver = webdriver.Chrome()
# ссылка на сайт для примера (может быть временная, поэтому бдим в оба)
driver.get('https://cdndl.zaycev.net/track/24932675/4srdJGcFYp791F9ABjYLyvNgexnUL8z7GFNMQiNEsrSRee43ZHFr7YoijrrsDraGx7sYdrvkXeKCzu8CwmWR5jBtHr5i49hH8LZ21oYQM6NQzzKomzZKtphTL5f6dNqGddRuMCQNeHGHMkY64WvroQwEvattc4FcXXhJFrxecgAwnEuHvUWxonULTacHy2wXrVhQAWGPgeXg7gnxMr5MNQ6wq9k35Lh3Dkrnuac678AgKKFkN4QY9ymyEL5gi7JfiqomuSVTsYDNb4WHrrFk2ixFia5Lq8ZahJmRgCGCPqJ8ny2jykXrQekfAJdC8e9rxL8wUnLMBcpPeGFJyZ1p64U2VptfeY')
# ищем элемент по css селектору
audio_element = driver.find_element_by_css_selector("source[type='audio/mpeg']")
# извлекаем url из элемента
audio_url = audio_element.get_attribute('src')
# качаем файл
response = requests.get(audio_url)
if response.status_code == 200:
# если файл успешно качнули, то сохраняем в downloads (папка downloads уже должна существовать)
with open('downloads/audio.mp3', 'wb') as f:
f.write(response.content)
driver.quit()