Django,这个Python Web框架,简直就是Web开发界的瑞士军刀,啥都能干,还干得漂亮!它提供了从数据库模型、视图、模板到表单处理等一系列功能,让你轻松搭建起功能强大的Web应用。今天,咱们就来聊聊Django的那些事儿!
Django初印象Django是一个高级的Python Web框架,它允许你快速开发安全、可维护的网站。Django遵循MVC(Model-View-Controller)设计模式,但更常用的是MVT(Model-View-Template)这一说法,其中Template对应MVC中的View。Django还自带了一个ORM(Object-Relational Mapping)系统,让你能以面向对象的方式操作数据库。
创建Django项目搭建项目骨架要开始一个Django项目,首先得有个项目骨架。咱们用django-admin startproject命令来创建。
django-admin startproject myproject
这条命令会在当前目录下创建一个名为myproject的文件夹,里面包含了项目的配置文件、管理脚本等。
运行开发服务器项目创建好了,接下来得跑起来看看。进入项目目录,运行python manage.py runserver命令,Django的开发服务器就启动了。
cd myprojectpython manage.py runserver
打开浏览器,访问http://127.0.0.1:8000/,就能看到Django的欢迎页面了!
温馨提示• Django的开发服务器默认监听127.0.0.1的8000端口,你可以通过修改命令中的参数来改变这些设置。
• 开发服务器仅用于开发和测试,不要在生产环境中使用。
创建Django应用应用是啥?在Django中,应用是网站的一个功能模块,比如博客、论坛等。一个Django项目可以包含多个应用。
创建应用在项目目录下,运行python manage.py startapp myapp命令来创建一个应用。
python manage.py startapp myapp
这会在项目目录下创建一个名为myapp的文件夹,里面包含了应用的配置文件、模型文件等。
注册应用创建好了应用,还得在项目的配置文件中注册它。打开myproject/settings.py文件,在INSTALLED_APPS列表中添加应用的名称('myapp')。
INSTALLED_APPS = [ ... 'myapp',]
温馨提示• 应用名称在注册时不需要加引号前的点(.),因为这是在同一个项目中。
• 注册应用后,Django会加载应用的配置和模型等。
玩转Django模型定义模型模型是Django ORM的核心,它定义了数据库中的表结构。在应用的models.py文件中定义模型。
from django.db import modelsclass Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() pub_date = models.DateTimeField('date published')
创建数据库表模型定义好了,接下来得在数据库中创建对应的表。运行python manage.py makemigrations命令来生成迁移文件,然后运行python manage.py migrate命令来应用迁移。
python manage.py makemigrationspython manage.py migrate
温馨提示• 迁移是Django管理数据库变更的一种方式,它记录了模型的变化,并可以应用到数据库中。
• 在开发过程中,每次修改模型后都要生成并应用迁移。
视图与URL配置定义视图视图是Django应用中的函数,它负责处理Web请求并返回Web响应。在应用的views.py文件中定义视图。
from django.shortcuts import renderfrom .models import Articledef article_list(request): articles = Article.objects.all() return render(request, 'article_list.html', {'articles': articles})
配置URL定义了视图后,还得配置URL来关联视图和URL路径。在项目的urls.py文件中配置URL。
from django.contrib import adminfrom django.urls import pathfrom myapp import viewsurlpatterns = [ path('admin/', admin.site.urls), path('', views.article_list, name='article_list'),]
温馨提示• URL配置中的path函数用于定义URL路径和视图之间的映射关系。
• name参数用于给URL命名,方便在模板和视图中引用。
模板渲染创建模板模板是Django用于生成HTML页面的文件。在项目的templates文件夹中创建模板文件(如果没有templates文件夹,可以自己创建)。
<!-- templates/article_list.html --><!DOCTYPE html><html><head> <title>Article List</title></head><body> <h1>Article List</h1> <ul> {% for article in articles %} <li>{{ article.title }} - {{ article.pub_date }}</li> {% endfor %} </ul></body></html>
渲染模板在视图中使用render函数来渲染模板,并传递上下文数据。
def article_list(request): articles = Article.objects.all() return render(request, 'article_list.html', {'articles': articles})
温馨提示• 模板中的{% for ... in ... %}和{{ ... }}是Django模板语言(DTL)的语法,用于循环和变量输出。
• 渲染模板时,render函数会将上下文数据传递给模板,并在模板中进行渲染。
Django的那些小技巧• 使用Django Admin:Django自带了一个强大的后台管理界面(Admin),你可以通过它来管理数据库中的数据。要启用Admin,只需在INSTALLED_APPS中添加'django.contrib.admin',并在项目的urls.py中配置Admin的URL。
• 自定义用户模型:如果你需要扩展Django默认的用户模型(比如添加额外的字段),可以在项目的settings.py中设置AUTH_USER_MODEL来指定自定义的用户模型。但注意,这必须在项目创建之初就设置好,因为一旦数据库中有数据了,再改用户模型就会很麻烦。
• 处理静态文件:静态文件(比如CSS、JS、图片等)在Django项目中也很重要。你需要在项目的settings.py中配置STATIC_URL和STATICFILES_DIRS等设置,然后在模板中通过{% static '...' %}标签来引用静态文件。
好啦,今天的Django之旅就到这里啦!相信你已经对Django有了初步的了解,并且能够开始用它来搭建Web应用了。Django的功能非常强大,这里只是介绍了它的一部分功能,还有更多高级功能和技巧等待你去探索和发现。如果你在使用过程中遇到了什么问题或者有什么心得体会,欢迎留言交流哦!