Django,一个强大的 Web 开发 Python 库!

文摘   2024-10-15 19:41   黑龙江  

点击下方卡片关注


▲点击上方卡片关注我

Django,一个强大的 Web 开发 Python 库!

Django 是个用 Python 写的 Web 框架,它能让咱们轻轻松松地搭建出复杂的网站和 Web 应用。说白了,它就是一堆已经写好的代码,咱们直接拿来用就行,不用从头开始写所有东西。这玩意儿特别适合那些想快速开发 Web 项目的程序员,尤其是对 Python 有点儿了解的人。



Django 的 MVT 架构


Django 用的是 MVT 架构,这玩意儿跟 MVC 架构挺像,但是有点儿不一样。MVT 是啥呢?就是 Model(模型)、View(视图)和 Template(模板)的缩写。


  • Model:负责和数据库打交道,定义数据结构

  • View:处理业务逻辑,就是决定啥时候该干啥

  • Template:负责页面展示,就是用户看到的那些东西

来看个简单的例子:   



# models.pyfrom django.db import modelsclass Book(models.Model):    title = models.CharField(max_length=100)    author = models.CharField(max_length=50)    pub_date = models.DateField()# views.pyfrom django.shortcuts import renderfrom .models import Bookdef 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.pyfrom django.urls import pathfrom . import viewsurlpatterns = [    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 formsclass 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 这玩意儿东西太多了,一篇文章说不完。感兴趣的话可以去看看官方文档,里面有更详细的介绍。记住,学习编程最重要的就是多写代码,光看不练是不行的。祝你学习愉快!



往期回顾


乐意说事
阅他人故事,品百味人生,坚持日更,加油!
 最新文章