Django рдХреЗ рд╕рд╛рде VueJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдкрд╛рдпрдерди рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред




рдкрд░рд┐рдЪрдп


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

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

рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡реНрдпрдХреНрддрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Django рдФрд░ jQuery рдХреЛ рдорд┐рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдм рд░рд┐рдПрдХреНрдЯ рдФрд░ рд╡реАрдпреВ рдЬреИрд╕реА рдирдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдХрдиреАрдХреЗрдВ рд╣реИрдВред рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдПрдХ рдРрд╕рд╛ рдврд╛рдБрдЪрд╛ рдЦреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо Django рдХреЗ рд╕рд╛рде рдЦрд░реЛрдВрдЪ рд╕реЗ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдПрдХ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ Vue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде Django рдХреЗ рд╕рд╛рде Vue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред

рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╕реЗрдЯрдЕрдк


Vue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХрд╛ рдЙрддреНрдХреГрд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ ред рдЗрд╕рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдПрдХ рдЕрдЪреНрдЫреА рдЦреЛрдЬ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреА рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ред рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ Django рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ Vue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдЬрдЯрд┐рд▓ рдШрдВрдЯреЛрдВ рдХреЗ рд╕реЗрдЯрдЕрдк рдХреЗред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рд░рд▓рддрдо рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ Vue.js, рдЗрд╕реЗ рдЯреИрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗ <script>ред

<!-- development version, includes helpful console warnings -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

рдЕрдм рд╣рдо рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ Vue.js:

<div id="app">
  {{ message }}
</div>

var app = new Vue({
  delimiters: ["[[", "]]"],
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

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

Vue рд╕реЗ Django рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪреЗрдВ


рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ jscon_scriptрд╕реЗ Django ред рдЗрд╕ рддрд░рд╣, рдЖрдк рддреБрд░рдВрдд Vue рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ Django рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

HTML рдореЗрдВ:

{{ django_template_variable|json_script:"djangoData" }}

рдФрд░ рдлрд┐рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:

let jsVariable = JSON.parse(document.getElementById('djangoData').textContent);


рдФрд░ рд╡рд╣ Vue рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ:

new Vue({
  delimiters: ["[[", "]]"],
  el: '#app',
  data: jsVariable
})

рдмреИрдХрдПрдВрдб рдкрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдз рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ


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

Vue рдЦреБрдж рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Vue рдкреНрд░рд▓реЗрдЦрди рджреНрд╡рд╛рд░рд╛ рднреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИред рдЖрдк рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред Django рдХреЗ CSRF рд╕реБрд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, axios рдХреЛ рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдХреБрдХреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЕрдХреНрд╖реАрдп рдорд╛рди рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ:

axios.defaults.xsrfCookieName = 'csrftoken';
axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдХреНрд╖реАрдп рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

var instance = axios.create({
    xsrfCookieName: 'csrftoken',
    xsrfHeaderName: "X-CSRFTOKEN",
});

рдЖрдкрдХреЗ Django рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдЯреИрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП {% csrf_token %}рдпрд╛, рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдВрдмрдВрдзрд┐рдд рджреГрд╢реНрдп рдХреЛ рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ensure_csrf_cookie()ред рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ Django рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХрдПрдВрдб рдХреЗ рдмрд╛рдХреА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк loginRequiredрдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдмреИрдХрдПрдВрдб рдкрд░ рдЕрдкрдиреА рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдмрд╕ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

axios.post('/django/backend/endpoint', {
    data: jsVariable 
})
    .then(function (response) {
        // handle response
    })
    .catch(function (error) {
        // handle error
    });

рдпрд╣ рдХреЙрд▓ mountedVue рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╣реБрдХ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдиреЗ CSRF_USE_SESSIONS CSRF_COOKIE_HTTPONLYрд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ Django рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ DOM рд╕реЗ CSRF рдЯреЛрдХрди рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Django рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВ ред

рдирд┐рд╖реНрдХрд░реНрд╖


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

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрдВ рдЙрдирдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЧрд╛рдЗрдб рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рджреЛ рдЦрд░рдЧреЛрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ!



Django (рдореБрдлреНрдд рд╡реЗрдмрд┐рдирд╛рд░) рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ ред

All Articles