Django框架入门使用1.0

1. Django框架入门

Django 是一个高级 Web 框架,基于 Python 语言实现,其主要目标是使开发复杂的 Web 应用程序更容易、更快捷。本文将为大家介绍 Django 框架的入门使用。

1.1 安装 Django

如果您已安装了 Python,可以通过 pip 包管理器安装 Django。

$ pip install Django

1.2 创建 Django 项目

在 Django 中,一个项目由多个应用程序组成。下面是创建一个 Django 项目的步骤:

1. 找一处合适的地方创建项目文件夹,例如 /home/user/django_projects/ 。

2. 在终端中进入文件夹,运行以下命令,在 /home/user/django_projects/ 目录下创建一个名为 mysite 的项目:

$ django-admin startproject mysite

1.3 运行 Django 项目

运行以下命令来启动 Django 开发服务器:

$ python manage.py runserver

通过浏览器访问 http://127.0.0.1:8000/ 可以看到 Django 的欢迎页面。

2. Django 应用程序

在 Django 中,应用程序是项目的组成部分。每一个应用程序都是一个相对独立的模块,用来实现一个特定的功能。

2.1 创建 Django 应用程序

在 mysite 项目下创建一个新的 polls 应用程序:

$ python manage.py startapp polls

2.2 编写应用程序视图函数

在 polls 应用程序中创建一个名为 views.py 的文件,并编写如下代码:

from django.http import HttpResponse

def index(request):

return HttpResponse("Hello, world. You're at the polls index.")

2.3 编写应用程序 URL 配置

在 polls 应用程序中创建一个名为 urls.py 的文件,并编写如下代码:

from django.urls import path

from . import views

urlpatterns = [

path('', views.index, name='index'),

]

2.4 添加应用程序到 Django 项目中

在 mysite 项目的 settings.py 文件中 INSTALLED_APPS 列表中添加 polls 应用程序:

INSTALLED_APPS = [

'polls.apps.PollsConfig', # new

'django.contrib.admin',

'django.contrib.auth',

...

]

2.5 运行应用程序

重新运行 Django 开发服务器,访问 http://127.0.0.1:8000/polls 可以看到应用程序输出的 "Hello, world. You're at the polls index."。

3. Django 模型

在 Django 中,模型是面向对象地描述数据的方式。一个模型类代表一个数据库表,模型中的字段代表表中的列。

3.1 创建模型

在 polls 应用程序的 models.py 文件中创建一个模型类:

from django.db import models

class Question(models.Model):

question_text = models.CharField(max_length=200)

pub_date = models.DateTimeField('date published')

class Choice(models.Model):

question = models.ForeignKey(Question, on_delete=models.CASCADE)

choice_text = models.CharField(max_length=200)

votes = models.IntegerField(default=0)

3.2 在数据库中创建模型

运行以下命令,将模型同步到数据库中:

$ python manage.py makemigrations polls

$ python manage.py migrate

3.3 在 Django 后台管理中添加模型管理

在 polls 应用程序的 admin.py 文件中注册 Question 和 Choice 模型:

from django.contrib import admin

from .models import Question, Choice

admin.site.register(Question)

admin.site.register(Choice)

3.4 运行 Django 后台管理

运行以下命令启动 Django 开发服务器,并访问 http://127.0.0.1:8000/admin/ 进入 Django 后台管理:

$ python manage.py runserver

3.5 创建模型的查询 API

在 polls 应用程序的 views.py 文件中编写如下代码:

from django.shortcuts import render

from .models import Question

def index(request):

latest_question_list = Question.objects.order_by('-pub_date')[:5]

context = {'latest_question_list': latest_question_list}

return render(request, 'polls/index.html', context)

def detail(request, question_id):

question = Question.objects.get(pk=question_id)

return render(request, 'polls/detail.html', {'question': question})

def results(request, question_id):

question = Question.objects.get(pk=question_id)

return render(request, 'polls/results.html', {'question': question})

4. Django 模板

Django 模板是一种快速生成 HTML 的方式,模板系统可以直接访问模型数据。

4.1 创建模板

在 polls 应用程序的 templates/polls 目录下创建以下三个模板文件:index.html、detail.html 和 results.html。

4.2 编写模板代码

在 index.html 文件中编写以下代码:

{% if latest_question_list %}

<ul>

{% for question in latest_question_list %}

<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>

{% endfor %}

</ul>

{% else %}

<p>No polls are available.</p>

{% endif %}

在 detail.html 文件中编写以下代码:

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}

<h1>{{ question.question_text }}</h1>

<form action="{% url 'polls:vote' question.id %}" method="post">

{% csrf_token %}

{% for choice in question.choice_set.all %}

<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}">

<label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br>

{% endfor %}

<input type="submit" value="Vote">

</form>

在 results.html 文件中编写以下代码:

<h1>{{ question.question_text }}</h1>

<ul>

{% for choice in question.choice_set.all %}

<li>{{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}</li>

{% endfor %}

</ul>

<a href="{% url 'polls:detail' question.id %}">Vote again?</a>

结论

本文介绍了 Django 框架的入门使用,详细地讲解了如何创建 Django 项目和应用程序、创建模型和数据表,以及如何通过模板系统快速生成 HTML。当然,这只是 Django 的冰山一角,Django 还有大量的高级功能等待开发者去发掘。

后端开发标签