Django Web 开辟基础:从入门到夺目的项目实战

打印 上一主题 下一主题

主题 945|帖子 945|积分 2835



Django 是一个用于快速开辟 Web 应用的 Python Web 框架。它接纳了 “快速开辟” 和 “少做重复劳动” 的原则,让开辟者能够专注于开辟业务逻辑,而不必为基础设施和通用功能担心。Django 是开源的,具有高度的可扩展性,广泛应用于各种范例的网站和 Web 应用中。
本文将通过一个简单的 Django 项目带你从入门到夺目,逐步相识 Django 的核心概念,学习怎样搭建一个 Web 应用、处理数据库交互、实现用户认证以及部署你的应用。无论你是 Django 新手,照旧想深入掌握 Django 的开辟者,这篇文章都将为你提供宝贵的实战履历。
一、Django 环境搭建

1.1 安装 Django

首先,确保你已经安装了 Python 环境。然后利用 pip 安装 Django:
  1. # 安装 Django
  2. pip install django
复制代码
安装完成后,可以通过以下下令查抄 Django 是否安装乐成:
  1. django-admin --version
复制代码
1.2 创建 Django 项目

利用 django-admin 创建一个新的 Django 项目:
  1. # 创建 Django 项目
  2. django-admin startproject myproject
  3. # 进入项目目录
  4. cd myproject
复制代码
此时,你会看到一个名为 myproject 的文件夹,其中包含了 Django 项目的初始结构。
1.3 启动开辟服务器

Django 内置了开辟服务器,可以通过以下下令启动:
  1. python manage.py runserver
复制代码
服务器默认会在 http://127.0.0.1:8000/ 启动。你可以在浏览器中访问该地址,查看 Django 的接待页面,表示环境搭建乐成。
二、创建应用与设置

2.1 创建 Django 应用

在 Django 中,一个项目通常包含多个应用(App)。每个应用通常是一个功能模块,包含视图、模型和路由等。创建一个新应用,可以利用以下下令:
  1. # 创建名为 'blog' 的应用
  2. python manage.py startapp blog
复制代码
2.2 设置应用

在创建应用后,需要将其添加到项目的 settings.py 中的 INSTALLED_APPS 设置项中:
  1. INSTALLED_APPS = [
  2.     # 其他应用
  3.     'blog',
  4. ]
复制代码
三、模型和数据库交互

3.1 界说模型

在 Django 中,模型是数据库表的抽象。我们可以通过模型来界说数据结构,并通过 Django ORM(对象关系映射)操纵数据库。打开 blog/models.py 文件,界说一个简单的文章模型:
  1. from django.db import models
  2. class Post(models.Model):
  3.     title = models.CharField(max_length=100)
  4.     content = models.TextField()
  5.     published_date = models.DateTimeField(auto_now_add=True)
  6.     def __str__(self):
  7.         return self.title
复制代码
这里界说了一个 Post 模型,包含文章的标题、内容和发布日期。__str__ 方法用于返回文章的标题,方便我们在后台管理中查看。
3.2 数据库迁徙

创建完模型后,需要通过迁徙下令将其同步到数据库中。首先运行以下下令天生数据库迁徙文件:
  1. python manage.py makemigrations
复制代码
然后运行迁徙下令,应用数据库变更:
  1. python manage.py migrate
复制代码
此时,Django 会根据模型主动创建数据库表。
3.3 创建超等用户

Django 内置了一个强大的后台管理系统,我们可以利用它来管理数据库中的数据。为了访问后台管理,我们需要创建一个超等用户:
  1. python manage.py createsuperuser
复制代码
按照提示输入用户名、电子邮件和密码。
四、Django 视图与 URL 路由

4.1 创建视图

视图是用户哀求与应用的交互桥梁。在 blog/views.py 中创建一个简单的视图,返回所有文章:
  1. from django.shortcuts import render
  2. from .models import Post
  3. def post_list(request):
  4.     posts = Post.objects.all()
  5.     return render(request, 'blog/post_list.html', {'posts': posts})
复制代码
这里的 post_list 视图从数据库中获取所有文章,并渲染到一个模板中。
4.2 设置 URL 路由

Django 利用 URLconf 来管理 URL 路由。首先,在应用的 blog/urls.py 中设置视图的路由:
  1. from django.urls import path
  2. from . import views
  3. urlpatterns = [
  4.     path('', views.post_list, name='post_list'),
  5. ]
复制代码
然后,在项目的 myproject/urls.py 中包含应用的 URL 路由:
  1. from django.contrib import admin
  2. from django.urls import path, include
  3. urlpatterns = [
  4.     path('admin/', admin.site.urls),
  5.     path('blog/', include('blog.urls')),  # 包含 blog 应用的路由
  6. ]
复制代码
4.3 创建模板

Django 利用模板系统来渲染 HTML 内容。在 blog/templates/blog/post_list.html 中创建一个简单的模板,用于展示文章列表:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Blog</title>
  6. </head>
  7. <body>
  8.     <h1>Blog Posts</h1>
  9.     <ul>
  10.         {% for post in posts %}
  11.             <li>{{ post.title }} - {{ post.published_date }}</li>
  12.         {% endfor %}
  13.     </ul>
  14. </body>
  15. </html>
复制代码
模板中通过 {{ post.title }} 和 {{ post.published_date }} 渲染文章标题和发布日期。
五、用户认证与权限管理

Django 提供了内置的用户认证系统,支持用户注册、登录、登出和权限管理。我们可以通过 Django 的 User 模型来管理用户数据。
5.1 用户注册

首先,创建一个用户注册视图和表单,在 blog/views.py 中添加注册视图:
  1. from django.contrib.auth.forms import UserCreationForm
  2. from django.shortcuts import render, redirect
  3. def register(request):
  4.     if request.method == 'POST':
  5.         form = UserCreationForm(request.POST)
  6.         if form.is_valid():
  7.             form.save()
  8.             return redirect('login')
  9.     else:
  10.         form = UserCreationForm()
  11.     return render(request, 'registration/register.html', {'form': form})
复制代码
然后,在 myproject/urls.py 中添加注册路由:
  1. from django.urls import path
  2. from . import views
  3. urlpatterns = [
  4.     path('register/', views.register, name='register'),
  5. ]
复制代码
5.2 用户登录与登出

Django 内置了登录和登出视图。你可以在 urls.py 中添加如下代码来启用登录和登出功能:
  1. from django.contrib.auth import views as auth_views
  2. urlpatterns = [
  3.     path('login/', auth_views.LoginView.as_view(), name='login'),
  4.     path('logout/', auth_views.LogoutView.as_view(), name='logout'),
  5. ]
复制代码
5.3 权限管理

在 Django 中,可以通过 @login_required 装饰器来保护某些视图,确保只有登录的用户才能访问:
  1. from django.contrib.auth.decorators import login_required
  2. @login_required
  3. def post_list(request):
  4.     posts = Post.objects.all()
  5.     return render(request, 'blog/post_list.html', {'posts': posts})
复制代码
六、项目部署与优化

6.1 部署到生产环境

Django 项目可以部署到许多平台上,如 AWS、Heroku、DigitalOcean 等。常见的部署方式包括利用 Gunicorn 作为 WSGI 服务器,并将其与 Nginx 举行反向署理。
6.2 静态文件与媒体文件

Django 的静态文件(CSS、JavaScript)和媒体文件(上传的文件)需要设置处理。在 settings.py 中设置静态文件和媒体文件的路径:
  1. # 静态文件
  2. STATIC_URL = '/static/'
  3. # 媒体文件
  4. MEDIA_URL = '/media/'
  5. MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
复制代码
七、总结

本教程带领你从基础到夺目地掌握了 Django 的核心概念,并通过一个简单的博客项目,展示了 Django 的项目创建、数据库交互、视图与模板渲染、用户认证与权限管理等常见开辟任务。你现在应该能够快速构建一个功能完整的 Django Web 应用,并相识怎样举行项目优化与部署。
Django 是一个强大的 Web 框架,通过不停实践与深入学习,你将能够更加高效地构建可维护、可扩展的 Web 应用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表