说明
Django 教程 正在计划编写中,欢迎大家加微信 gairuo123 提供意见、建议、纠错、催更。
Django 是一个高层次的 Python Web 框架,鼓励快速开发和干净、实用的设计。Django 由经验丰富的开发者开发,处理了 Web 开发中的很多麻烦事项,使得你可以专注于编写应用而不是重复造轮子。
首先,需要安装 Django,可以使用 pip 进行安装:
pip install django
使用 django-admin 创建一个新的 Django 项目:
django-admin startproject myproject
cd myproject
在 Django 中,一个项目可以包含多个应用。使用 manage.py 创建一个新的应用:
python manage.py startapp myapp
在应用的 models.py 文件中定义数据模型:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
birth_date = models.DateField()
使用 Django 的迁移系统生成和应用数据库迁移:
python manage.py makemigrations
python manage.py migrate
在应用的 admin.py 文件中注册模型,以便通过 Django 管理界面进行管理:
from django.contrib import admin
from .models import Person
admin.site.register(Person)
在应用的 views.py 文件中定义视图函数:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world!")
在应用的 urls.py 文件中配置 URL 路由:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
并在项目的 urls.py 文件中包含应用的 URL:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')),
]
使用 runserver 命令启动开发服务器:
python manage.py runserver
访问 http://127.0.0.1:8000/myapp/
即可看到刚才定义的视图输出。
Django 提供了一个强大的模板系统,用于生成动态 HTML 内容。在应用的 templates 目录中创建模板文件,并在视图中渲染模板:
from django.shortcuts import render
def index(request):
context = {'message': 'Hello, world!'}
return render(request, 'index.html', context)
在 index.html 文件中使用模板语法:
<!DOCTYPE html>
<html>
<head>
<title>My App</title>
</head>
<body>
<h1>{{ message }}</h1>
</body>
</html>
Django 提供了强大的表单处理功能,可以通过定义表单类来处理用户输入:
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
在视图中处理表单:
from django.shortcuts import render
from .forms import NameForm
def get_name(request):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
return HttpResponse(f"Hello, {form.cleaned_data['your_name']}!")
else:
form = NameForm()
return render(request, 'name.html', {'form': form})
在模板中渲染表单:
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
Django 提供了内置的用户认证系统,可以很方便地处理用户注册、登录、登出等功能。在 urls.py 文件中包含认证 URL:
from django.urls import include, path
urlpatterns = [
path('accounts/', include('django.contrib.auth.urls')),
]
然后可以在模板中使用内置的认证视图和表单。
Django 中间件是一种钩子框架,可以在请求和响应的不同阶段进行处理。可以在 settings.py 文件中配置中间件:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
Django 提供了便捷的方式来处理静态文件(如 CSS、JavaScript)和媒体文件(用户上传的文件)。可以在 settings.py 文件中配置静态文件和媒体文件的路径:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
在模板中引用静态文件:
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
Django 是一个功能强大且成熟的 Web 框架,适合构建各种类型的 Web 应用。它提供了完备的组件和工具,涵盖了 Web 开发的各个方面,从 ORM 到模板系统,再到用户认证和表单处理。Django 的设计目标是让开发过程尽可能简单和高效,同时保持代码的可维护性和扩展性。通过利用 Django,开发者可以快速构建高质量的 Web 应用。
更新时间:2024-07-09 09:05:36 标签:python django 网站