
Python
26
Вклад в тег
from django.db import models
from django.contrib.auth.models import User
class APIKey(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
key = models.CharField(max_length=64, unique=True)
from django.http import JsonResponse
from your_app.models import APIKey
def api_key_required(view_func):
@wraps(view_func)
def _wrapped_view(request, *args, **kwargs):
api_key = request.headers.get("X-API-Key")
if not api_key or not APIKey.objects.filter(key=api_key).exists():
return JsonResponse({"error": "Unauthorized"}, status=403)
return view_func(request, *args, **kwargs)
return _wrapped_view
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
@api_key_required
def my_api_view(request):
return JsonResponse({"message": "Success"})
answer
не принимает параметр chat_idawait mybot.bot.send_message(chat_id = 123, text=message.text)
await mybot.bot.send_message(627976213, message.text)
from aiogram.contrib.fsm_storage.memory import MemoryStorage
storage = MemoryStorage()
from aiogram.dispatcher import FSMContext
@dp.message_handler(commands=['start'])
async def start(message: types.Message, state=FSMContext):
await message.answer('Вы ввели команду /start, введите команду /stop или /cancel чтобы выйти из меню')
await state.set_state(YourState.name_state)
@dp.message_handler(commands=['stop'], state=YourState.name_state)
async def stop(message: types.Message, state=FSMContext):
await message.answer('Вы ввели команду /stop')
await state.finish()
@dp.message_handler(commands=['cancel'], state='*')
async def cancel(message: types.Message, state=FSMContext):
current_state = await state.get_state()
if current_state is None:
return
await state.finish()
await message.answer('Вы ввели команду /cancel')