рдореЗрдбреБрдЬрд╛ рд╡реЗрдм рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреЛ рджреЗрдЦрд╛: рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо-рджрд░-рдЪрд░рдг рдЧрд╛рдЗрдб

рдореЗрд░рд╛ рдирд╛рдо Egor рд╣реИ, рдореИрдВ рд▓реАрдбрд░-рдЖрдИрдбреА рдореЗрдВ рдПрдХ рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рд╕реБрдВрджрд░ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдиреБрд╕реНрдЦрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореЗрдбреБрдЬрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдВрдХрдбрд╝реЗ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреБрд▓ рд╕реНрдХреЛрд░ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджреЗрдВ, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВред рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ Django, DRF, Python рдФрд░ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЪреБрдирд╛ред



рд╕рднреА рд╡рд┐рд╡рд░рдг рдХрдЯ рдХреЗ рдиреАрдЪреЗ рд╣реИрдВред

рдИрдВрдЯрд╡рд░реНрдХ (рдЪрд┐рдкрдЪрд┐рдкрд╛ рд╕рдмрдХ, рд╣рд╛рд▓рд╛рдВрдХрд┐,) рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдПрдХ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж , рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬреЛ рджрд╕ рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж Dzhang рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдереЗред

рдпрджрд┐ рдЖрдк рдПрдХ рд╢реБрд░реБрдЖрддреА рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЬрд┐рдирд╛рдЧреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВ , рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЪрд░рдг рджрд░ рдЪрд░рдг рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдФрд░ рдбреАрдЖрд░рдПрдл рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдмрд╛рдж , рдЕрдВрдд рдореЗрдВ рд╡рд┐рд╖рдп рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЗрд╕рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:

  • Django 3.0.3ред рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП;
  • Django-рдЖрд░рд╛рдо-рдврд╛рдВрдЪрд╛ред рдЖрд░рд╛рдо-рдЕрдкреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП;
  • рдЕрдЬрдЧрд░
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ PostgreSQL;
  • рдлреНрд░рдВрдЯ-рдПрдВрдб - Nuxt.js, Axios, Element-UIред

рдЕрдм рдХрджрдо


рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд Django - рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

django-admin startproject рдХреЛрд░ - рдПрдХ djang рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред

рд╕реАрдбреА рдХреЛрд░ - рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рдПрдВред

рдЕрдЬрдЧрд░ рдкреНрд░рдмрдВрдзрди рдУрд░реЗрдХрд▓ рдкреВрд▓ рд╢реБрд░реВ - рдПрдХ рдорддрджрд╛рди рдЖрд╡реЗрджрди рдЬреЛрдбрд╝реЗрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЪреБрдирд╛рд╡реЛрдВ рдореЗрдВ рдореЙрдбрд▓ рдХреЗ рдореЙрдбрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ DRF рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдмрдирд╛рддреЗ рд╣реИрдВред

class Question(models.Model):
    title = models.CharField(max_length=4096)
    visible = models.BooleanField(default=False)
    max_points = models.FloatField()

    def __str__(self):
           return self.title

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.DO_NOTHING)
    title = models.CharField(max_length=4096)
    points = models.FloatField()
    lock_other = models.BooleanField(default=False)

    def __str__(self):
        return self.title

class Answer(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING)
    question = models.ForeignKey(Question, on_delete=models.DO_NOTHING)
    choice = models.ForeignKey(Choice, on_delete=models.DO_NOTHING)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.choice.title


рдХреЛрдб рдкрд╛рда рдпрд╣рд╛рдБ
from rest_framework import serializers
from .models import Answer, Question, Choice


class ChoiceSerializer(serializers.ModelSerializer):
    percent = serializers.SerializerMethodField()

    class Meta:
        model = Choice
        fields = ['pk', 'title', 'points', 'percent', 'lock_other', ]

    def get_percent(self, obj):
        total = Answer.objects.filter(question=obj.question).count()
        current = Answer.objects.filter(question=obj.question, choice=obj).count()
        if total != 0:
            return float(current * 100 / total)
        else:
            return float(0)


class QuestionSerializer(serializers.ModelSerializer):
    choices = ChoiceSerializer(many=True, source='choice_set', )

    class Meta:
        model = Question
        fields = ['pk', 'title', 'choices', 'max_points', ]


class AnswerSerializer(serializers.Serializer):
    answers = serializers.JSONField()

    def validate_answers(self, answers):
        if not answers:
            raise serializers.Validationerror("Answers must be not null.")
        return answers

    def save(self):
        answers = self.data['answers']
        user = self.context.user
        for question_id, in answers:  #     ,    
            question = Question.objects.get(pk=question_id)
            choices = answers[question_id]
            for choice_id in choices:
                choice = Choice.objects.get(pk=choice_id)
                Answer(user=user, question=question, choice=choice).save()
                user.is_answer = True
                user.save()


рдлрд┐рд░ рд╣рдо view.py рдореЗрдВ рджреЛ DRF рд╡рд┐рдЪрд╛рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдкреНрд░рд╢реНрди рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рднреА рдЙрддреНрддрд░реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред


рдХреЛрдб рдкрд╛рда рдпрд╣рд╛рдБ
from .serializers import QuestionSerializer, AnswerSerializer
from rest_framework.permissions import IsAuthenticated
from rest_framework.generics import GenericAPIView
from rest_framework.response import Response
from .models import Question


class GetQuestion(GenericAPIView):
    permission_classes = (IsAuthenticated,)
    serializer_class = QuestionSerializer

    def get(self, request, format=None):
        questions = Question.objects.filter(visible=True, )
        last_point = QuestionSerializer(questions, many=True)
        return Response(last_point.data)


class QuestionAnswer(GenericAPIView):
    permission_classes = (IsAuthenticated,)
    serializer_class = AnswerSerializer

    def post(self, request, format=None):
        answer = AnswerSerializer(data=request.data, context=request)
        if answer.is_valid(raise_exception=True):
            answer.save()
            return Response({'result': 'OK'})


рдЕрдм рд╣рдо urls.py рдореЗрдВ рд▓рд┐рдВрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:

urlpatterns = [
    path('', GetQuestion.as_view()),
    path('answer/', QuestionAnswer.as_view()),
]

Admin.py рдореЗрдВ рдореЙрдбрд▓ рдЬреЛрдбрд╝реЗрдВ:


рдХреЛрдб рдкрд╛рда рдпрд╣рд╛рдБ
from django.contrib import admin
from .models import Question, Answer, Choice


class QuestionAdmin(admin.ModelAdmin):
    list_display = (
        'title',
        'visible',
        'max_points',
    )


class ChoiceAdmin(admin.ModelAdmin):
    list_display = (
        'title',
        'question',
        'points',
        'lock_other',
    )
    list_filter = ('question',)


class AnswerAdmin(admin.ModelAdmin):
    list_display = (
        'user',
        'question',
        'choice',
    )
    list_filter = ('user',)


admin.site.register(Question, QuestionAdmin)
admin.site.register(Choice, ChoiceAdmin)
admin.site.register(Answer, AnswerAdmin)


рдЕрдЧрд▓рд╛ рдХрджрдо INSTALLED_APPS рдореЗрдВ рд╣рдорд╛рд░реЗ рдУрдкрд┐рдирд┐рдпрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ settings.py (рдХреЛрд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ) рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдФрд░ рд▓реЙрдиреНрдЪ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

  • python manage.py makemigrations - рдирд┐рд░реНрдорд┐рдд рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдмрдирд╛рдПрдБ
  • python manage.py рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд░реЗрдВ
  • python manage.py createuperuser - рдПрдХ рд╕реБрдкрд░рдпреБрд╕рд░ рдмрдирд╛рдПрдБ (рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ)
  • python manage.py runserver - рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ

рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рд╕реНрдХреЛрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рд╕рд░рд▓ рдЧрдгрдирд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдВрдХ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдореИрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реА рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреЛ рдХреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЙрддреНрддрд░ рдХрд╛ рдЕрдкрдирд╛ "рд╡рдЬрди" рд╣реИред

рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ ( http://127.0.0.1:8000 / рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ , рдФрд░ рдЙрдирд╕реЗ рд╕рд╡рд╛рд▓ рдФрд░ рдЬрд╡рд╛рдм рдмрдирд╛рддреЗ рд╣реИрдВ, рдЕрдВрдХ рдбрд╛рд▓рддреЗ рд╣реИрдВред



рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЙрди рд╕рд╛рдерд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдФрд░ рдЙрдирдХреЗ рдЙрддреНрддрд░ рдкреВрд░реЗ рдХрд┐рдПред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдЬреЛрдбрд╝реА - "рд╡рд┐рдХрд▓реНрдк"ред рдЗрд╕рд▓рд┐рдП рдХрдИ рдЬрд╡рд╛рдм рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЙрддреНрддрд░ рдХреЗ рдмреАрдЪ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╣рдореЗрдВ рдЙрд╕ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рднрд╛рдЧреАрджрд╛рд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирддреАрдЬрддрди, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛:


рдЕрдм рд╕рд╛рдордиреЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

рдЗрд╕рдореЗрдВ рд╣рдо рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдЙрддреНрддрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╢реНрди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдШрдЯрдХ рдХреЛ рдЕрдкрдиреЗ рддрд░реНрдХ рдФрд░ рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рдмрджрд▓рддреЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдЬрдм рд╕реВрдЪреА рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ, рддреЛ рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреАрдЫреЗ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрд░рд┐рдгрд╛рдо рдкреГрд╖реНрда рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЕрдВрдХ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдм рдкреНрд░рд╢реНрди рдирд╣реАрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рддреИрдпрд╛рд░ рдХрд░ рд▓реА рд╣реИ рдЬреЛ рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдХреА рдЙрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВ, рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЙрддреНрддрд░ рдПрдХрддреНрд░ рдХрд░реЗрдВ, рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрдВрдХ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдВред

рдмрдиреНрд╕ рдЬреЛрдбрд╝реЗрдВ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рд╕рдордп-рд╕рдордп рдкрд░ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХрдорд╛рдВрдб рдЬреЛрдбрд╝реАред

рджреВрд╕рд░реЗ, рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрдВрдЯрд╡рд╛рд░реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдареАрдХред рд╕реЗрд╡рд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛ рдЖрдкрдХреЛ VKontakte рдФрд░ рдлреЗрд╕рдмреБрдХ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рд╣рдо рд╡реАрдХреЗ рдФрд░ рдлреЗрд╕рдмреБрдХ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ (рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди) рдмрд┐рдВрджреБрдУрдВ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реБрдП рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдПрдХ рд╕реМ рд╡реЗрд░рд┐рдПрдВрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдлреНрд░рдВрдЯ-рдПрдВрдб рднрд╛рдЧ рдХреЗ рд╕рд╛рдорд╛рдЬрд┐рдХ рдШрдЯрдХ рдореЗрдВ рдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред VKontakte рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛: рд╣рдо рдЫрд╡рд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реАрдзреЗ URL рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рдкрд╛рд╕ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдиреА рдкрдбрд╝реАред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡реЗ рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдореАрдбрд┐рдпрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рдореИрдВрдиреЗ рдЪрд┐рддреНрд░ рдХреЗ URL рд╕реЗ рдЫрд╡рд┐ рдпрд╛ рдЪрд┐рддреНрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛, рддреЛ рдкреЛрд╕реНрдЯ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдЦрд╛рд▓реА рдХреНрд╖реЗрддреНрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рд╡рд╣ рд╕рд╛рдЗрдЯ рдХреЗ рдореЗрдЯреИрдирдл (рдУрдЧ: рдЗрдореЗрдЬ) рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрд╕рдиреЗ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ (рд╣рдо рд▓рд┐рдВрдХ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдпреВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ)ред рдФрд░ рдЙрд╕реЗ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдФрд░ рдкреАрда рдкрд░ рдПрдХ рдореИрдХреЗрдирд┐рдХ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдПрд╕рдкреАрдПрдЖрд░ (рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░) рдХреЗ рд▓рд┐рдП рдПрд╕рдкреАрдП (рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░) рдХреЛ рд╕рд╛рдордиреЗ рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛,рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЕрдиреБрд░реЛрдз рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЗрдб-рдореЗрдЯрд╛ рдореЗрдВ рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХрд╛ urlред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ Nuxt.js рдврд╛рдВрдЪрд╛ рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдореЛрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ-рдУрдирд▓реА рдЯреИрдЧреНрд╕ рдХреЛ рд╕реНрдХреЗрдЪ рдХрд░рдиреЗ рдФрд░ рдХреНрд╡реЗрд░реА рд╕реНрдХреЛрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рд╕рд┐рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред



рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕рд░реНрд╡рд░ рдкрд░, рдЙрддреНрдкрдиреНрди рдкреГрд╖реНрдареЛрдВ рдХреЛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдорди рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдФрд░ рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕ рдХреЛ рдирдЧреНрдиреЗрдХреНрд╕ рдкрд░ рднреА рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рд▓рд╛рдн!



рд╣рдо рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ


рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЛ рднрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд░реБрдЪрд┐ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╢реНрди рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рджрд░реНрд╢рди рдЬреЛрдбрд╝рд╛ред рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдиреЗ рдХреИрд╕реЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛ред рдХрднреА-рдХрднреА рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЙрдирд╕реЗ рдпреЗ рдкреНрд░рд╢реНрди рдХреНрдпреЛрдВ рдкреВрдЫреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢реНрди рдХреЛ рдордЬрд╛рдХрд┐рдпрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд┐рдпрд╛ред рдЦреИрд░, рдореЗрд░реА рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд╛рд▓ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рдереАред



рд╕рд╛рд░рд╛рдВрд╢


рдЗрд╕ рддрд░рд╣ рдХреЗ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИрдВ рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрдВрдЫ рдФрд░ рдЕрдпрд╛рд▓ рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╕рдорд╛рдЬрд╢рд╛рд╕реНрддреНрд░реАрдп рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗ рд▓рд┐рдП, рдЬреНрдЮрд╛рди / рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдпрд╛ рд╕рд╛рдЗрдЯреЛрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рддрддреНрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВрдиреЗ рдЙрдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЗрд╕ рдЗрдВрдЬрди рдкрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЗрди рджреЛ рд▓рд┐рдВрдХ рдкрд░ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: healthcare.leader-id.ru рдФрд░ covid.leader-id.ru ред

All Articles