Django项目创建与管理

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的数据模型,它有四个属性:titleauthorpub_dateprice。其中,titleauthorCharField类型的字段,pub_dateDateField类型的字段,priceDecimalField类型的字段。

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 %}

{{ book.title }}

{% 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时提供帮助。

后端开发标签