当我们开始使用Django进行Web开发时,我们通常需要遵循以下步骤:
1.规划项目结构
在开始编写代码之前,我们需要认真考虑我们将要实现的功能和我们的项目结构。Django是一个MVC框架,它鼓励我们将不同的应用程序放在不同的应用程序(APP)目录中,并将每个应用程序分解为模型(Models),视图(Views)和控制器(Controller)(URLconf)。这使得项目更加可维护和可重用。例如,一个基本的Django项目结构如下所示:
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
wsgi.py
myapp/
__init__.py
models.py
views.py
urls.py
templates/
myapp/
index.html
2.创建Django项目
一旦我们已经规划好了我们的项目结构,我们现在可以创建我们的Django项目。
使用以下命令创建Django项目:
django-admin startproject projectname
3.创建Django应用程序
我们现在需要创建一个应用程序(APP)来实现我们的项目的一些功能。要创建一个应用程序,请使用以下命令:
python manage.py startapp appname
创建后,我们需要将应用程序名称添加到project/settings.py文件的INSTALLED_APPS顶部的列表中。
4.创建模型
模型(Models)是Django的核心组件之一,并用于定义应用程序中的数据结构。在我们的应用程序中创建模型是实现全功能Web应用程序的重要一步。
例如,在我们的应用程序中,我们创建一个名为“Book”的类来表示书籍对象。这可以通过在appname/models.py中创建以下代码块来完成:
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()
def __str__(self):
return self.title
这将创建一个名为Book的类,并将其保存到appname/models.py文件中。我们还定义了Book的属性:Title,Author和Pub_date。
5.创建视图
视图(Views)是Django应用程序中的另一个核心组件,并用于呈现应用程序的动态内容。在我们的应用程序中创建视图是实现Web应用程序的关键步骤之一。
例如,我们可以在appname/views.py文件中创建以下视图:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the book index page.")
这将创建一个名为“index”视图,并在其中定义所有请求的行为。在这种情况下,我们只是在网页上显示“Hello, world. You're at the book index page.”消息。
6.创建URLconf
我们需要将我们的应用程序与URLs相关联,以确保在浏览器中输入正确URL时使用正确的视图。URLconf是urlhelpers.py文件,其包含我们的应用程序的URL和相应的视图。
例如,我们在appname/urlhelpers.py文件中添加以下代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
这将通过创建一个与我们定义的视图函数匹配的URL模式来将视图与URL关联起来,并将其命名为“index”。
7.运行并测试应用程序
我们现在可以在本地运行我们的应用程序以测试它。使用以下命令启动Django服务器:
python manage.py runserver
在此之后,我们可以在本地计算机上打开浏览器并输入以下地址进行测试:
http://127.0.0.1:8000/
这将显示我们在视图中定义的消息。
以上是Django的典型开发过程,具体实现取决于你想实现的功能及具体需求。下面通过两个示例说明:
示例1:创建一个用户注册表单
1.首先,在app目录下的templates目录中创建一个名为register.html的文件。
2.在register.html中添加以下代码:
{% block content %}
<h2>Register</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Register</button>
</form>
{% endblock %}
3.在app目录下,创建一个views.py文件
4.在views.py文件中添加以下代码块:
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'register.html', {'form': form})
5.在应用程序目录中的urlhelpers.py文件中添加以下代码块:
from django.urls import path
from . import views
urlpatterns = [
path('register/', views.register, name='register'),
]
现在,我们可以建立一个完整的用户注册系统。
示例2:添加一个名为“ratings”的等级模型
1.在我们的应用程序目录中的models.py文件中,添加以下模型定义:
from django.db import models
from django.contrib.auth.models import User
class Rating(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
book = models.ForeignKey(Book, on_delete=models.CASCADE)
rating = models.IntegerField(default=0)
def __str__(self):
return "Rating for book %s by user %s" % (self.book, self.user)
2.在app目录的views.py文件中添加以下代码块:
from django.shortcuts import render
from .models import Book, Rating
def book_detail(request, id):
book = Book.objects.get(pk=id)
ratings = Rating.objects.filter(book=book)
context = {
'book': book,
'ratings': ratings,
}
return render(request, 'book_detail.html', context)
3.在app目录中的templates目录中创建一个名为book_detail.html的文件,添加以下代码块:
<h2>{{ book.title }}</h2>
<p>{{ book.author }}</p>
<h3>Ratings</h3>
{% if ratings.count > 0 %}
<ul>
{% for rating in ratings %}
<li>{{ rating.user.username }} rated this book a {{ rating.rating }}</li>
{% endfor %}
</ul>
{% else %}
<p>No ratings available.</p>
{% endif %}
4.在应用程序目录中的urlhelpers.py文件中,为book_detail视图添加URL模式:
from django.urls import path
from . import views
urlpatterns = [
path('book/<int:id>/', views.book_detail, name='book_detail'),
]
现在,我们可以添加一个使用Rating模型的网页,以便用户可以对书籍进行评级。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django的开发步骤原来是这样的 - Python技术站