Table of Contents
{{ message }}
Home Web Front-end Vue.js Basics to practice: Getting started with Vue3+Django4 full-stack development

Basics to practice: Getting started with Vue3+Django4 full-stack development

Sep 08, 2023 pm 06:16 PM
vue django Full stack development

Basics to practice: Getting started with Vue3+Django4 full-stack development

Basics to practice: Introduction to Vue3 Django4 full-stack development

Overview:
Full-stack development means that a developer can handle front-end and back-end work at the same time , which is becoming increasingly important in modern web development. This article will introduce how to use Vue3 and Django4 for full-stack development, and provide some code examples to help readers get started.

  1. Installing and Configuring Vue3
    First, we need to install the Vue CLI to create and manage our Vue project. Run the following command on the command line to install Vue CLI:

    npm install -g @vue/cli
    Copy after login

    After the installation is complete, use the following command to create a new Vue project:

    vue create my-project
    Copy after login

    Select according to the prompts and select the default option.

  2. Create Vue components
    In a Vue project, we can use components to build user interfaces. In the src directory of the Vue project, create a folder named "components" and a file named "HelloWorld.vue" in it. In this file, we can write our component code, for example:

    <template>
      <div>
     <h1 id="message">{{ message }}</h1>
     <button @click="changeMessage">Change Message</button>
      </div>
    </template>
    
    <script>
    export default {
      data() {
     return {
       message: 'Hello World!'
     }
      },
      methods: {
     changeMessage() {
       this.message = 'New Message!'
     }
      }
    }
    </script>
    Copy after login

    This is a simple component that contains a title and a button that changes the content of the title when the button is clicked.

  3. Configuring Django4
    Next, we need to install Django and create a new Django project. Run the following command on the command line to install Django:

    pip install django==4.0.0
    Copy after login

    After the installation is complete, use the following command to create a new Django project:

    django-admin startproject myproject
    Copy after login

    This will create a new Django project in the current directory named "myproject "'s new Django project.

  4. Create Django views and URLs
    In the root directory of the Django project, open the settings.py file and add the following content to the INSTALLED_APPS setting:

    INSTALLED_APPS = [
     ...
     'rest_framework',
     'myapp',  // myapp是我们将要创建的应用的名称,根据需要修改
     ...
    ]
    Copy after login

    Then, add the following at the end of the settings.py file:

    REST_FRAMEWORK = {
     'DEFAULT_PERMISSION_CLASSES': [
         'rest_framework.permissions.AllowAny',
     ]
    }
    Copy after login

    This will configure Django to use the REST framework to create the API.

Next, create an application named "myapp" in the root directory of the Django project:

python manage.py startapp myapp
Copy after login

In the myapp directory, open the views.py file, And add the following:

from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(['GET'])
def hello_world(request):
    return Response({'message': 'Hello World!'})
Copy after login

This is a simple view function that will return a JSON response containing "Hello World!" when we access the URL.

Next, in the myproject directory, open the urls.py file and add the following content:

from django.urls import path
from myapp.views import hello_world

urlpatterns = [
    path('api/hello/', hello_world),
]
Copy after login

This will align our view function with the URL path '/api/hello/' association.

  1. Run the project
    Now, we have completed the basic configuration of Vue and Django. Next we need to connect the Vue application and the Django project.

In the root directory of the Vue project, open the "main.js" file and add the following content:

import { createApp } from 'vue'
import App from './App.vue'
import axios from 'axios'

const app = createApp(App)
app.config.globalProperties.$http = axios
app.mount('#app')
Copy after login

This will globally configure the Vue application to use axios as the HTTP client.

In the root directory of the Vue project, open the "App.vue" file and add the following content:

<template>
  <div>
    <h1 id="message">{{ message }}</h1>
    <button @click="getMessage">Get Message</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    }
  },
  methods: {
    getMessage() {
      this.$http.get('http://localhost:8000/api/hello/')
        .then(response => {
          this.message = response.data.message
        })
        .catch(error => {
          console.error(error)
        })
    }
  }
}
</script>
Copy after login

This will send a request to Django's view when the button is clicked and will return message is displayed on the page.

Now, we have completed all configuration. In the root directory of the Vue project, run the following command to start the Vue development server:

npm run serve
Copy after login

In the root directory of the Django project, run the following command to start the Django development server:

python manage.py runserver
Copy after login

Now, Visit "http://localhost:8080" in your browser and you will see a page containing a "Hello World!" button. When you click the button, the page will display "Hello World!".

This is an introductory guide to full-stack development with Vue3 and Django4. With the sample code in this article, you can learn how to build a basic Vue and Django application and connect them together. Hope this helps you on your full stack development journey!

The above is the detailed content of Basics to practice: Getting started with Vue3+Django4 full-stack development. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1655
14
PHP Tutorial
1252
29
C# Tutorial
1226
24
How to use bootstrap in vue How to use bootstrap in vue Apr 07, 2025 pm 11:33 PM

Using Bootstrap in Vue.js is divided into five steps: Install Bootstrap. Import Bootstrap in main.js. Use the Bootstrap component directly in the template. Optional: Custom style. Optional: Use plug-ins.

How to add functions to buttons for vue How to add functions to buttons for vue Apr 08, 2025 am 08:51 AM

You can add a function to the Vue button by binding the button in the HTML template to a method. Define the method and write function logic in the Vue instance.

How to use watch in vue How to use watch in vue Apr 07, 2025 pm 11:36 PM

The watch option in Vue.js allows developers to listen for changes in specific data. When the data changes, watch triggers a callback function to perform update views or other tasks. Its configuration options include immediate, which specifies whether to execute a callback immediately, and deep, which specifies whether to recursively listen to changes to objects or arrays.

What does vue multi-page development mean? What does vue multi-page development mean? Apr 07, 2025 pm 11:57 PM

Vue multi-page development is a way to build applications using the Vue.js framework, where the application is divided into separate pages: Code Maintenance: Splitting the application into multiple pages can make the code easier to manage and maintain. Modularity: Each page can be used as a separate module for easy reuse and replacement. Simple routing: Navigation between pages can be managed through simple routing configuration. SEO Optimization: Each page has its own URL, which helps SEO.

How to return to previous page by vue How to return to previous page by vue Apr 07, 2025 pm 11:30 PM

Vue.js has four methods to return to the previous page: $router.go(-1)$router.back() uses &lt;router-link to=&quot;/&quot; component window.history.back(), and the method selection depends on the scene.

How to reference js file with vue.js How to reference js file with vue.js Apr 07, 2025 pm 11:27 PM

There are three ways to refer to JS files in Vue.js: directly specify the path using the &lt;script&gt; tag;; dynamic import using the mounted() lifecycle hook; and importing through the Vuex state management library.

How to use vue traversal How to use vue traversal Apr 07, 2025 pm 11:48 PM

There are three common methods for Vue.js to traverse arrays and objects: the v-for directive is used to traverse each element and render templates; the v-bind directive can be used with v-for to dynamically set attribute values ​​for each element; and the .map method can convert array elements into new arrays.

React vs. Vue: Which Framework Does Netflix Use? React vs. Vue: Which Framework Does Netflix Use? Apr 14, 2025 am 12:19 AM

Netflixusesacustomframeworkcalled"Gibbon"builtonReact,notReactorVuedirectly.1)TeamExperience:Choosebasedonfamiliarity.2)ProjectComplexity:Vueforsimplerprojects,Reactforcomplexones.3)CustomizationNeeds:Reactoffersmoreflexibility.4)Ecosystema

See all articles