简单快速理解一下 Django 框架

本文最后更新于:2 个月前

简单快速理解一下 Django 框架

  1. 创建项目和应用

    创建一个新的 Django 项目:

    django-admin startproject myproject

    在这个项目中创建一个新的应用:

    1
    2
    3
    cd myproject

    python manage.py startapp myapp
  2. 理解模型

    在你的应用中,创建一个新的模型。例如,在myapp/models.py中:

    1
    2
    3
    4
    5
    from django.db import models

    class Blog(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()

    这个模型定义了一个博客,它有一个标题和内容。每个模型都映射到数据库中的一个表。

  3. 理解视图

    myapp/views.py中,创建一个视图来显示博客的列表:

    1
    2
    3
    4
    5
    6
    from django.shortcuts import render
    from .models import Blog

    def blog_list(request):
    blogs = Blog.objects.all()
    return render(request, 'myapp/blog_list.html', {'blogs': blogs})

    这个视图获取所有的博客,并将它们传递给一个模板。

  4. 理解模板

    创建一个模板来显示博客的列表。例如,在myapp/templates/myapp/blog_list.html中:

1
2
3
4
5
6

{% for blog in blogs %}
<h2>{{ blog.title }}</h2>
<p>{{ blog.content }}</p>
{% endfor %}

这个模板遍历所有的博客,并显示它们的标题和内容。
  1. 理解 URL 分发器

    myapp/urls.py中,创建一个 URL 模式来映射到你的视图:

1
2
3
4
5
6
7
8

from django.urls import path
from . import views

urlpatterns = [
path('blogs/', views.blog_list, name='blog_list'),
]

这个 URL 模式将/blogs/映射到blog_list视图。

  1. 使用 Django 的数据库 API

    你可以使用 Django 的数据库 API 来操作你的模型。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 创建一个新的博客

blog = Blog(title='My First Blog', content='Hello, world!')
blog.save()

# 获取所有的博客
blogs = Blog.objects.all()

# 获取标题为"My First Blog"的博客
blog = Blog.objects.get(title='My First Blog')

# 更新博客的内容
blog.content = 'Hello, Django!'
blog.save()

# 删除博客
blog.delete()

  1. 理解 Django 的表单

    Django 的表单可以帮助你处理 HTML 表单。例如,在myapp/forms.py中:

1
2
3
4
5
6
7
8
from django import forms
from .models import Blog

class BlogForm(forms.ModelForm):
class Meta:
model = Blog
fields = ['title', 'content']

这个表单可以用来创建和更新博客。 8. 理解 Django 的类视图

Django 的类视图可以帮助你复用代码。例如,在myapp/views.py中:

1
2
3
4
5
6
7
8
from django.views.generic import ListView
from .models import Blog

class BlogListView(ListView):
model = Blog
template_name = 'myapp/blog_list.html'
context_object_name = 'blogs'

这个类视图做的事情和前面的blog_list函数视图一样,但它使用了更少的代码。

  1. 理解 Django 的中间件

Django 的中间件可以全局地改变 Django 的输入或输出。例如,你可以创建一个中间件来记录所有的请求:

1
2
3
4
5
6
7
8
9
class LoggingMiddleware:
def __init__(self, get_response):
self.get_response = get_response

def __call__(self, request):
print(f'Request URL: {request.path}')
response = self.get_response(request)
return response

这个中间件将打印所有的请求 URL。你需要将它添加到你的MIDDLEWARE设置中才能使它生效。

以上就是一些基于 Django 的基础知识点的示例代码和注释,希望对你有所帮助。如果你想要深入学习 Django,我建议你查看 Django 的官方文档,它是一个非常详细的资源。

关注我获取更新