1. Django简介
Django是一个基于Python的开源Web框架,它的目标是快速开发Web应用程序。使用Django的最大优势之一是它遵循了“Dont Repeat Yourself(不要重复自己)”的原则,这意味着开发人员不必为同样的任务编写重复的代码。Django提供了许多内置的功能和工具,例如ORM、模板引擎、表单、管理后台等,这些功能可以让开发者更高效地开发Web应用程序。
2. Django项目创建
2.1 安装Django
在创建Django项目前,我们需要先安装Django。可以通过pip命令来安装Django:
pip install django
安装完成后,可以通过以下命令查看Django的版本号:
django-admin version
如果以上命令执行失败,可以尝试以下命令:
python -m django version
如果Django已经成功安装,执行以上命令将打印出版本号。
2.2 创建Django项目
在Django中,Web应用程序被组织在项目(project)中,一个Django项目可以包含多个Web应用程序(app)。可以通过以下命令创建一个Django项目:
django-admin startproject project_name
其中,project_name
是你的项目名称。
执行以上命令后,将生成一个project_name
文件夹,它的内部结构如下:
project_name/
manage.py
project_name/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
接下来,我们将逐一介绍这些文件的作用。
2.3 项目文件解释
2.3.1 manage.py
manage.py
是Django的命令行工具,它可以帮助我们完成许多常见任务,例如启动开发服务器、运行测试、管理数据库等。
可以通过以下命令启动开发服务器:
python manage.py runserver
运行测试:
python manage.py test
管理数据库:
python manage.py makemigrations
python manage.py migrate
2.3.2 project_name/
project_name/
文件夹是Django项目的主要文件夹,它包含了项目的所有配置和代码。
2.3.3 __init__.py
一个空文件,它告诉Python解释器将这个文件夹作为一个包来处理。
2.3.4 settings.py
settings.py
文件包含了Django项目的全部配置,例如数据库信息、安装的应用程序、静态文件和模板目录等。
2.3.5 urls.py
urls.py
文件定义了Django项目中使用的URL模式。当用户请求一个URL时,Django会根据urls.py
文件中的模式来确定应该调用哪个视图函数(view function)来响应这个请求。
2.3.6 asgi.py
asgi.py
是一个ASGI(Asynchronous Server Gateway Interface)应用程序入口,它是Django 3.0引入的新特性,支持异步请求处理和Websocket协议。
2.3.7 wsgi.py
wsgi.py
是一个WSGI(Web Server Gateway Interface)应用程序入口,它允许Django应用程序与任何符合WSGI标准的Web服务器进行交互。
3. Django项目管理
3.1 应用程序管理
在Django中,Web应用程序被组织在应用程序中,可以通过以下命令创建一个应用程序:
python manage.py startapp app_name
其中,app_name
是应用程序的名称。
执行以上命令后,将生成一个app_name
文件夹,它的内部结构如下:
app_name/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
3.1.1 models.py
models.py
文件定义了应用程序的数据模型,它使用Django提供的ORM(Object-Relational Mapping)来操作数据库。
定义一个数据模型:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=200)
pub_date = models.DateField(auto_now_add=True)
price = models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
return self.title
以上代码定义了一个名为Book
的数据模型,它有四个属性:title
、author
、pub_date
和price
。其中,title
和author
是CharField
类型的字段,pub_date
是DateField
类型的字段,price
是DecimalField
类型的字段。
3.1.2 views.py
views.py
文件定义了应用程序中的视图函数,它处理用户请求并返回响应。
定义一个视图函数:
from django.shortcuts import render
from django.http import HttpResponse
from .models import Book
def index(request):
latest_books = Book.objects.order_by('-pub_date')[:5]
context = {'latest_books': latest_books}
return render(request, 'app_name/index.html', context)
以上代码定义了一个名为index
的视图函数,它首先从数据库中获取最新的五本书,然后将这些书的信息存储在context
中,最后将context
传递给渲染app_name/index.html
模板的render
函数。
3.2 URL管理
在Django中,URL模式是由urls.py
文件定义的。默认情况下,urls.py
文件将包含在Django项目的根目录中。可以在应用程序的根目录中创建一个新的urls.py
文件来扩展URL模式。
例如,我们可以在应用程序app_name
的根目录中创建一个新的urls.py
文件,并添加以下代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('book//', views.book_detail, name='book_detail'),
]
以上代码定义了两个URL模式:
''
:该模式匹配应用程序的根URL,将调用index
视图函数。
'book/<int:book_id>/''
:该模式匹配以'book/'
开头、后跟一个整数book_id
的URL,将调用book_detail
视图函数。该URL模式使用<int:book_id>
作为动态部分,它允许我们从请求URL中提取book_id
,并将其传递给视图函数。
3.3 模板管理
Django中的模板引擎提供了一种将数据渲染到HTML中的方法。模板可以包含HTML、CSS和Javascript等内容,以及Django模板标签和过滤器等。
在Django中,模板通常存储在一个名为templates
的文件夹中,可以在应用程序根目录下创建一个名为templates
的文件夹,并在其中添加一个index.html
文件:
{% extends 'base.html' %}
{% block content %}
Latest Books
{% for book in latest_books %}
{% endfor %}
{% endblock %}
以上代码使用Django模板语法,将最新的五本图书以列表的形式渲染到HTML中。
3.4 数据库管理
Django提供了一种便捷的方式来管理数据库,它使用ORM(Object-Relational Mapping)来抽象底层数据库,让开发人员可以使用Python对象来操作数据库。
在Django中,使用models.py
文件定义数据模型,可以使用以下命令将这些模型映射到数据库:
python manage.py makemigrations app_name
python manage.py migrate
以上命令将生成一个migrations
文件夹,它包含了创建/更新数据库所需的SQL语句。可以使用以下命令将这些语句应用到数据库中:
python manage.py migrate
除了使用以上命令外,还可以使用Django的管理后台来管理数据库。管理后台可以让我们方便地查看、编辑和删除数据库中的数据,可以通过以下步骤启用管理后台:
在app_name/admin.py
文件中注册数据模型:
from django.contrib import admin
from .models import Book
admin.site.register(Book)
创建超级用户:
python manage.py createsuperuser
启动开发服务器:
python manage.py runserver
在浏览器中访问http://127.0.0.1:8000/admin/
,输入创建的超级用户信息,即可进入管理后台。
4. 总结
本文介绍了Django框架的基本概念和使用方法,包括Django项目创建、应用程序管理、URL管理、模板管理和数据库管理等。Django提供了许多内置的功能和工具,可以让开发者更高效地开发Web应用程序。希望本文能够对初学者在使用Django时提供帮助。