在Django框架中实现前后端分离通常涉及以下几个步骤:
首先,确保你的Django项目结构清晰,便于管理和扩展。一个典型的Django项目结构如下:
myproject/ manage.py myproject/ __init__.py settings.py urls.py wsgi.py apps/ myapp/ __init__.py admin.py apps.py models.py tests.py views.py urls.py templates/ myapp/ index.html detail.html static/ myapp/ css/ js/ images/ 在settings.py中配置静态文件的路径:
STATIC_URL = '/static/' STATICFILES_DIRS = [BASE_DIR / "static"] 你可以创建一个新的Django应用来处理前端逻辑。例如,创建一个名为frontend的应用:
python manage.py startapp frontend 在frontend/static/目录下创建HTML、CSS和JavaScript文件。例如,在index.html中编写前端页面:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Frontend</title> <link rel="stylesheet" href="{% static 'css/main.css' %}"> </head> <body> <h1>Welcome to Frontend</h1> <script src="{% static 'js/main.js' %}"></script> </body> </html> 在frontend/urls.py中配置前端应用的URL:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] 在myproject/urls.py中包含前端应用的URL:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('myapp.urls')), path('', include('frontend.urls')), ] 在myapp/views.py中编写后端视图:
from django.http import JsonResponse def index(request): data = {'message': 'Hello from backend'} return JsonResponse(data) 在myapp/urls.py中配置后端视图的URL:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] 启动Django开发服务器:
python manage.py runserver 现在,你可以通过访问http://127.0.0.1:8000/来查看前端页面,并通过访问http://127.0.0.1:8000/api/来与后端API进行交互。
你可以使用JavaScript(例如使用Fetch API)来与后端API进行交互:
fetch('/api/') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); 通过以上步骤,你可以在Django框架中实现前后端分离。前端使用HTML、CSS和JavaScript构建用户界面,后端提供API接口供前端调用。