点击下方卡片关注
▲点击上方卡片关注我
Django,一个强大的 Web 开发 Python 库!
Django 是个用 Python 写的 Web 框架,它能让咱们轻轻松松地搭建出复杂的网站和 Web 应用。说白了,它就是一堆已经写好的代码,咱们直接拿来用就行,不用从头开始写所有东西。这玩意儿特别适合那些想快速开发 Web 项目的程序员,尤其是对 Python 有点儿了解的人。
Django 的 MVT 架构
Django 用的是 MVT 架构,这玩意儿跟 MVC 架构挺像,但是有点儿不一样。MVT 是啥呢?就是 Model(模型)、View(视图)和 Template(模板)的缩写。
Model:负责和数据库打交道,定义数据结构
View:处理业务逻辑,就是决定啥时候该干啥
Template:负责页面展示,就是用户看到的那些东西
来看个简单的例子:
# models.py
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
pub_date = models.DateField()
# views.py
from django.shortcuts import render
from .models import Book
def book_list(request):
books = Book.objects.all()
return render(request, 'book_list.html', {'books':books})
# book_list.html
<ul>
{% for book in books %}
<li>{{ book.title }} by {{ book.author }}</li>
{% endfor %}
</ul>
这段代码定义了一个 Book 模型,一个显示书籍列表的视图,还有个简单的模板来展示这些书。
温馨提示:写 Django 的时候,记得把不同的功能放在不同的文件里,别全塞一块儿,不然以后看着费劲。
URL 路由
Django 的 URL 路由系统挺有意思,它让咱们能够把 URL 和视图函数关联起来。比方说,咱们想让 /books/
这个地址显示所有的书,就可以这么写:
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('books/', views.book_list, name='book_list'),
]
这样,当用户访问 /books/
的时候,Django 就会调用 book_list
这个视图函数。
ORM:对象关系映射
Django 的 ORM 是个挺厉害的东西,它让咱们能用 Python 代码来操作数据库,不用写那些烦人的 SQL 语句。举个栗子:
# 创建一本新书
new_book = Book(title=“Python 从入门到放弃”, author=“猫哥”, pub_date=“2023-10-01”)
new_book.save()
# 查询所有书
all_books = Book.objects.all()
# 查询特定的书
python_books = Book.objects.filter(title__contains=“Python”)
这些代码看起来就跟普通的 Python 代码一样,但实际上背后 Django 帮咱们翻译成了 SQL 语句。
温馨提示:用 ORM 是挺方便的,但有时候也会影响性能。如果遇到特别复杂的查询,可能还是得写原生 SQL。
模板系统
Django 的模板系统让咱们能把 Python 代码和 HTML 混在一起用,这样就能动态生成网页了。来看个例子:
html
复制
{% if user.is_authenticated %}
<h1>欢迎回来,{{ user.username }}!</h1>
{% else %}
<h1>请登录</h1>
{% endif %}
<ul>
{% for book in books %}
<li>{{ book.title }} ({{ book.pub_date|date:“Y-m-d” }})</li>
{% endfor %}
</ul>
刷新新标签页
分享
控制台
关闭控制台
这段代码根据用户是否登录显示不同的欢迎语,然后列出所有的书。注意看那个 |date:“Y-m-d”
,这是个过滤器,用来格式化日期。
表单处理
Django 还提供了一套表单处理系统,让咱们能轻松处理用户提交的数据。比如说:
from django import forms
class BookForm(forms.ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'pub_date']
def add_book(request):
if request.method == 'POST':
form = BookForm(request.POST)
if form.is_valid():
form.save()
return redirect('book_list')
else:
form = BookForm()
return render(request, 'add_book.html', {'form':form})
这段代码定义了一个表单类,然后在视图函数里处理表单提交。如果是 POST 请求,就验证表单数据并保存;如果是 GET 请求,就显示空表单。
Django 还有很多其他强大的功能,比如用户认证、管理后台、中间件等等。这些功能加在一起,让 Django 成为了一个全能型的 Web 框架。
不过话说回来,Django 也不是十全十美的。它的学习曲线有点陡,特别是对初学者来说。而且它的某些设计可能会让一些经验丰富的开发者感到限制。但是如果你想快速开发一个功能齐全的 Web 应用,Django 绝对是个不错的选择。
好了,今天就聊到这儿吧。Django 这玩意儿东西太多了,一篇文章说不完。感兴趣的话可以去看看官方文档,里面有更详细的介绍。记住,学习编程最重要的就是多写代码,光看不练是不行的。祝你学习愉快!
往期回顾
◆
◆
◆