День 118 #365DaysOfCode
Наконец-то решил проблему, которая мучила меня последние 3-4 дня. Решение все это время было прямо у меня под носом! Теперь пользователям запрещен доступ к нерелевантным страницам, что обеспечивает персонализированный опыт. В этом сообщении в блоге я расскажу, как успешно решил эту проблему, используя файлы cookie и информацию профиля.
Чтобы пользователи могли просматривать только страницы, соответствующие их типу пользователя, я реализовал метод, который извлекает информацию о профиле пользователя из базы данных. Изучив файл cookie вошедшего пользователя, я получил его уникальный идентификатор пользователя. Используя этот идентификатор, я сделал запрос API, чтобы получить данные их профиля, которые включают информацию об их типе пользователя.
Пример Объяснение кода: Следующий фрагмент кода демонстрирует процесс получения информации о профиле и определения типа пользователя:
// Retrieving the profile information of the currently signed-in user. const userId = cookies.UserId; const [user, setUser] = useState([]); const [freelancer, setFreelancer] = useState(null); const getUser = async () => { const route = "freelancerprofile"; try { const response = await axios.get(`/${route}`, { params: { userId }, }); setUser(response.data); } catch (err) { console.log("error getting user profile info", err); } }; useEffect(() => { getUser(); }, []); // Ensuring that the signed-in user is a freelancer to grant them access to view the current component. useEffect(() => { if (user?.user_id) { setFreelancer(true); } }, [user]);
В этом коде мы сначала получаем идентификатор пользователя из файла cookie. Затем, используя библиотеку axios, мы делаем запрос API для получения информации о профиле пользователя. Получив ответ, мы сохраняем данные в переменной состояния пользователя.
Затем мы используем дополнительный хук useEffect, чтобы проверить, содержит ли объект пользователя свойство user_id вместо client_user_id. Если user_id существует, это указывает на то, что пользователь является фрилансером. Итак, мы устанавливаем состояние фрилансера в true, открывая доступ к соответствующим компонентам.
День 18 #100DaysOfPython ✓
Сегодня в рамках курса я построил простой калькулятор с использованием рекурсии. Создавать калькулятор при изучении нового языка — обычная традиция программирования. Удивительно, но завтра мы будем углубляться в создание игры в блэкджек. Для тех, кому интересно, я в настоящее время зачислен на курс Анжелы Ю «100 дней Python Bootcamp».
def add(n1, n2): return n1 + n2 def subtract(n1, n2): return n1 - n2 def multiply(n1, n2): return n1 * n2 def divide(n1, n2): return n1 / n2 operations = { "+": add, "-": subtract, "*": multiply, "/": divide, } def calculator(): num1 = float(input("What's the first number?: ")) for symbols in operations: print(symbols) should_continue = True while should_continue: operation_symbol = input("Pick an operation from the line above: ") num2 = float(input("What's the next number?: ")) calculation_func = operations[operation_symbol] answer = calculation_func(num1, num2) print(f"{num1} {operation_symbol} {num2} = {answer}") if input(f"Type 'y' to continue calculating with {answer} or type 'n' to start a new calculation: ") == "y": num1 = answer else: should_continue = False calculator() calculator()
Удачного кодирования!