Python web实战 | 使用 Django 搭建 Web 应用程序 【干货】

概要

从社交媒体到在线购物,从在线银行到在线医疗,Web 应用程序为人们提供了方便快捷的服务。Web 应用程序已经成为了人们日常生活中不可或缺的一部分。搭建一个高效、稳定、易用的 Web 应用程序并不是一件容易的事情。本文将介绍如何使用 Django 快速搭建一个强大的 Web 应用程序。我将从如何安装 Django 开始,一步一步地讲解如何创建、设计和部署一个完整的 Web 应用程序。

 

安装 Django

在开始之前,我们需要安装 DjangoDjango 是一个开源的 Web 应用框架,基于 Python 编程语言。它提供了一系列工具和库,可以帮助我们快速地搭建 Web 应用程序。以下是安装 Django 的步骤:

步骤 1:安装 Python

步骤 2:安装 Django

安装 Python 之后,我们需要安装 Django。打开终端或命令提示符,输入以下命令:

pip install Django

创建 Django 项目

安装 Django 之后,我们可以开始创建 Django 项目了。以下是创建 Django 项目的步骤:

步骤 1:创建项目

首先,我们需要在命令提示符或终端中进入我们要存放项目的目录。然后,输入以下命令,创建一个 Django 项目:

django-admin startproject myproject

这将会创建一个名为 myproject Django 项目。myproject 目录下的文件和子目录如下:

myproject/

    manage.py

    myproject/

        __init__.py

        settings.py

        urls.py

        asgi.py

        wsgi.py

manage.py 是一个命令行工具,可以用来执行各种 Django 命令,例如启动开发服务器、执行数据库迁移等等。

myproject 目录是我们的项目主目录。

init.py 文件是一个空文件,用于指示 Python 解释器将该目录视为 Python 包。

settings.py 文件包含了 Django 项目的设置,例如数据库配置、静态文件路径、模板路径等等。

urls.py 文件包含了 Django 项目的 URL 映射关系。

asgi.py 文件是使用 ASGI(异步服务器网关接口)的入口文件。

wsgi.py 文件是使用 WSGIWeb 服务器网关接口)的入口文件。

步骤 2:运行开发服务器

创建项目之后,我们可以运行开发服务器来测试我们的项目。在命令提示符或终端中进入 myproject 目录,然后输入以下命令:

python manage.py runserver

这将会启动开发服务器,默认监听本地的 8000 端口。打开浏览器,访问 http://localhost:8000/ ↗,我们应该能够看到 Django 的欢迎页面。

👉当运行 python manage.py runserver 命令时,Django 会启动一个本地服务器,并实时监听你的项目文件的修改。

如果你修改了你的 Django 项目中的任何文件(如视图、模板、静态文件等),服务器会自动重新加载,并反映出你所做的更改。这羊开发过程更加高效和便捷,因为你不需要手动重启服务器来查看修改后的效果。

请注意,如果修改了 settings.py 文件,需要重新启动服务器才能使更改生效。

步骤 3:创建一个 Django 应用程序

现在我们已经创建了一个 Django 项目,接下来我们需要创建一个 Django 应用程序。Django 应用程序是 Django 项目的一个组成部分,用于处理特定的功能或业务逻辑。以下是创建 Django 应用程序的步骤:

1、创建应用程序

在命令提示符或终端中进入项目主目录 myproject,然后输入以下命令:

python manage.py startapp myapp

这将会创建一个名为 myapp Django 应用程序。myapp 目录下的文件和子目录如下:

myapp/

    __init__.py

    admin.py

    apps.py

    models.py

    tests.py

    views.py

    migrations/

        __init__.py

init.py 文件是一个空文件,用于指示 Python 解释器将该目录视为 Python 包。

admin.py 文件用于定义 Django 管理后台的配置。

apps.py 文件用于定义应用程序的配置。

models.py 文件用于定义应用程序的数据模型。

tests.py 文件用于编写应用程序的单元测试。

views.py 文件用于定义应用程序的视图函数。

migrations 目录用于存放应用程序的数据库迁移脚本。

2、注册应用程序

在项目主目录 myproject 中的 settings.py 文件中,我们需要将应用程序添加到 INSTALLED_APPS 列表中,以便 Django 知道我们要使用哪些应用程序。我们需要将 myapp 添加到 INSTALLED_APPS 列表中,如下所示:

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'myapp',

]

3、定义模型

Django 中,数据模型是使用 Python 类来定义的。我们需要在 myapp 应用程序的 models.py 文件中定义数据模型。以下是一个简单的例子:

from django.db import models



class Book(models.Model):

    title = models.CharField(max_length=100)

    author = models.CharField(max_length=100)

    pub_date = models.DateField()

    price = models.DecimalField(max_digits=5, decimal_places=2)

在上面的例子中,我们定义了一个名为 Book 的数据模型,它包含了 titleauthorpub_date price 四个属性。title author 属性都是字符串类型,最大长度为 100pub_date 属性是一个日期类型,表示出版日期。price 属性是一个十进制数,共有五位数字,其中两位小数。

👉您可以使用Djangoinspectdb命令来快速根据MySQL数据库生成模型。inspectdb命令会根据数据库中的表结构自动生成相应的Django模型代码。

以下是使用inspectdb命令生成模型的步骤:

a. 确保您的Django项目已经连接到MySQL数据库。在settings.py文件中DATABASES字典中的相关配置正确。

b. 打开终端,进入项目根目录,并执行以下命令:

python manage.py inspectdb > models.py

该命令会将生成的模型代码输出到models.py文件中。

c. 在生成的代码中进行必要的修改。由于MySQL的表可能包含一些与Django模型不兼容的特性,例如自增长主键和命名不规范的列名,因此您需要手动修改生成的代码以适应您的项目需求。

d. models.py文件中导入必要的模块和类,例如:

from django.db import models



class YourModel(models.Model):

    # your fields here

    pass

e. 运行数据迁移命令,将模型同步到数据库中:

python manage.py makemigrations

python manage.py migrate

步骤 4:生成数据库迁移脚本

在定义完数据模型之后,我们需要使用 Django 的数据库迁移工具来生成数据库迁移脚本。以下是生成数据库迁移脚本的步骤:

1、创建迁移文件

在命令提示符或终端中进入项目主目录 myproject,然后输入以下命令:

python manage.py makemigrations

这将会根据我们在数据模型中定义的信息,生成一个新的迁移文件。迁移文件将被保存在应用程序的 migrations 目录中。

2、应用迁移文件

在命令提示符或终端中进入项目主目录 myproject,然后输入以下命令:

python manage.py migrate

这将会将我们的数据库迁移到最新的状态。如果我们之前没有使用过 Django 的数据库迁移工具,则该命令将会创建一个新的数据库。

👉如果你已经有了一个存在的数据库,并修改了某个模型类的字段或删除了某个模型类,执行 python manage.py makemigrations 会生成对应的迁移文件,再执行 python manage.py migrate 命令则会将这些修改应用到数据库中,并且可能会导致数据丢失或出现其他问题。

因此,在执行 migrate 命令之前,建议先备份数据库以避免数据丢失。

步骤 5:编写视图函数

Django 中,视图函数用于处理 HTTP 请求并生成 HTTP 响应。我们需要在应用程序的 views.py 文件中编写视图函数。以下是一个简单的例子:

from django.shortcuts import render

from django.http import HttpResponse

from .models import Book



def index(request):

    books = Book.objects.all()

    context = {'books': books}

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

在上面的例子中,我们定义了一个名为 index 的视图函数。该函数使用 Book.objects.all() 查询所有的书籍,并将其存储在一个名为 books 的变量中。然后,我们创建了一个字典 context,将 books 变量添加到其中。最后,我们使用 render 函数将 index.html 模板渲染成 HTML 并返回给客户端。

步骤 6:创建模板

Django 中,模板用于生成 HTML 页面。我们需要在应用程序的 templates 目录中创建一个名为 index.html 的模板。以下是一个简单的例子:

<!DOCTYPE html>

<html>

<head>

    <title>My Bookstore</title>

</head>

<body>

    <h1>My Bookstore</h1>

    <ul>

        {% for book in books %}

        <li>{{ book.title }} by {{ book.author }}</li>

        {% endfor %}

    </ul>

</body>

</html>

在上面的例子中,我们定义了一个 HTML 页面,使用 Django 的模板语言来遍历所有的书籍,并将它们显示在一个无序列表中。

步骤 7:配置 URL 映射

Django 中,URL 映射用于将 URL 请求映射到相应的视图函数。我们需要在应用程序的 urls.py 文件中定义 URL 映射。以下是一个简单的例子:

from django.urls import path

from . import views



urlpatterns = [

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

]

在上面的例子中,我们定义了一个 URL 映射,将根 URL 映射到 index 视图函数。我们还为该 URL 映射指定了一个名为 index 的名称。

部署 Django 应用程序

在完成开发和测试之后,我们需要将 Django 应用程序部署到生产环境中。以下是部署 Django 应用程序的步骤:

步骤 1:选择 Web 服务器

在部署 Django 应用程序之前,我们需要选择一个 Web 服务器。常见的 Web 服务器包括 ApacheNginxGunicorn 等等。在选择 Web 服务器时,我们需要考虑服务器的性能、稳定性、安全性等因素。

👉Nginx 擅长处理反向代理和负载均衡,而 Apache 擅长处理静态文件和动态内容。Gunicorn 则是 Python WSGI 应用程序的常用服务器。一般Web首选Nginx

步骤 2:安装 Web 服务器和数据库

在选择好 Web 服务器之后,我们需要在生产服务器上安装 Web 服务器和数据库。具体的安装方法因服务器和操作系统而异。我们需要根据服务器和操作系统的文档来完成安装。

步骤 3:部署 Django 应用程序

在安装好 Web 服务器和数据库之后,我们可以开始部署 Django 应用程序了。以下是部署 Django 应用程序的步骤:

1、将应用程序上传到服务器

将我们的 Django 应用程序上传到服务器。我们可以使用 FTPSCP 或其他文件传输工具来完成上传。

2、配置 Web 服务器

在部署 Django 应用程序之前,我们需要配置 Web 服务器。具体的配置方法因 Web 服务器而异。我们需要根据 Web 服务器的文档来完成配置。

在配置 Web 服务器时,我们需要指定 Django 应用程序的 WSGI 入口文件。以下是一个简单的例子:

import os

from django.core.wsgi import get_wsgi_application



os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')

application = get_wsgi_application()

在上面的例子中,我们将 Django 应用程序的设置文件指定为 myproject.settings,然后调用 get_wsgi_application() 函数,返回一个 WSGI 应用程序对象。

3、设置静态文件和媒体文件

在部署 Django 应用程序时,我们需要处理静态文件和媒体文件。静态文件包括 CSSJavaScript、图片等文件,媒体文件包括用户上传的文件。我们需要在 Web 服务器中配置静态文件和媒体文件的访问。

对于静态文件,我们可以使用 Django 提供的 collectstatic 命令来收集静态文件,然后将其存储在一个指定的目录中。我们需要在 Web 服务器中配置该目录的访问。

对于媒体文件,我们需要在 Django 应用程序中设置媒体文件的存储路径,并在 Web 服务器中配置该路径的访问。

4、启动 Web 服务器

在完成以上步骤之后,我们可以启动 Web 服务器,让 Django 应用程序在生产环境中运行。

技术总结

本文介绍了 Django 的基本概念,包括模型、视图、模板、URL 映射等。我们还学习了如何使用 Django 创建一个简单的书店应用程序,并将其部署到生产环境中。

Django 是一个功能强大的 Web 框架,它提供了许多便捷的功能,例如 ORM、模板引擎、表单处理等。使用 Django 可以大大简化 Web 应用程序的开发过程,并提高开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/51413.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python基础入门教程(上)

目录 一、你好Python 1.1、Python安装 win版 Linux版 1.2、第一个Python程序 二、Python基本语法 2.1、字面量 2.2、注释 2.3、变量 2.4、数据类型 type()函数 字符串类型的不同定义方式 2.5、数据类型转换 ​编辑 2.6、标识符 2.7、运算符 2.8、字符串扩展 …

Linux安装kafka3.5.1

要在Ubuntu上安装Apache Kafka&#xff0c;请按照以下步骤操作&#xff1a; 1、安装Java运行时环境(Ubuntu)&#xff1a; 如果已经安装jdk不用执行 sudo apt update sudo apt install default-jre2、下载Kafka&#xff1a; wget https://downloads.apache.org/kafka/3.5.1/…

【【51单片机的红外遥控】】

红外遥控&#xff0c;完全把控 红外遥控 利用红外光进行通信的设备&#xff0c;由红外LED将调制后的信号发出&#xff0c;再由专门的红外接收头进行解调输出 通信方式&#xff1a;单工 异步 红外LED波长&#xff1a;940nm 通信协议标准&#xff1a;NEC标准 用那种一体化红红外…

下级平台级联视频汇聚融合平台EasyCVR,层级显示不正确的原因排查

视频汇聚平台安防监控EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外分发RTSP、RTMP、FLV、HLS、WebRTC等…

如何使用 After Effects 导出摄像机跟踪数据到 3ds Max

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 在本教程中&#xff0c;我将展示如何在After Effects中跟踪实景场景&#xff0c;然后将相机数据导出到3ds Max。 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合…

Rust vs Go:常用语法对比(十二)

题图来自 Rust vs Go in 2023[1] 221. Remove all non-digits characters Create string t from string s, keeping only digit characters 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 删除所有非数字字符 package mainimport ( "fmt" "regexp")func main() { s : hei…

运行时数据区

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ 类文件被类装载器加载之后&#xff0c;类中的内容&#xff08;比如&#xff1a;变量、常量、方法、对象等&#xff09;这些数据需要存储起来&#xff0c;存储的位置就是在 …

RabbitMQ 教程 | 客户端开发向导

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

JMeter常用内置对象:vars、ctx、prev

在前文 Beanshell Sampler 与 Beanshell 断言 中&#xff0c;初步阐述了JMeter beanshell的使用&#xff0c;接下来归集整理了JMeter beanshell 中常用的内置对象及其使用。 注&#xff1a;示例使用JMeter版本为5.1 1. vars 如 API 文档 所言&#xff0c;这是定义变量的类&a…

【点云处理教程】04 Python 中的点云过滤

一、说明 这是我的“点云处理”教程的第 4 篇文章。“点云处理”教程对初学者友好&#xff0c;我们将在其中简单地介绍从数据准备到数据分割和分类的点云处理管道。 在本教程中&#xff0c;我们将学习如何使用 Open3D 在 python 中过滤点云以进行下采样和异常值去除。使用 Open…

Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集

Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集 前言相关介绍COCO格式实例分割数据集转换为YOLO格式实例分割数据集coco格式对应的json文件&#xff0c;以test.json为例格式转换代码&#xff0c;内容如下 前言 由于本人水平有限&#xff0c;难免出现错漏&#xf…

【JAVASE】什么是方法

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 方法 1. 方法概念及使用1.1 什么是方法1…

Vue『卡片拖拽式课程表』

Vue『卡片拖拽式课程表』 概述 在本篇技术博客中&#xff0c;我们将介绍一个使用Vue实现的『卡片拖拽式课程表』。这个课程表允许用户通过拖拽课程卡片来安排不同的课程在时间表上的位置。我们将逐步讲解代码实现&#xff0c;包括课程表的布局、拖拽功能的实现&#xff0c;以…

6G内存运行Llama2-Chinese-7B-chat模型

6G内存运行Llama2-Chinese-7B-chat模型 Llama2-Chinese中文社区 第一步&#xff1a; 从huggingface下载 Llama2-Chinese-7b-Chat-GGML模型放到本地的某一目录。 第二步&#xff1a; 执行python程序 git clone https://github.com/Rayrtfr/llama2-webui.gitcd llama2-web…

QtC++ 技术分析3 - IOStream

目录 iostreamscanf/printfiostream 整体架构流相关类流缓冲区 模板特化后整体结构文件流文件流对象创建常见文件流操作输出格式设定文件流状态 字符串流字符串流内部缓冲区字符串流使用 流缓冲区用户自定义 IO iostream scanf/printf 几种常见的输入输出流函数 scanf 从键盘…

操作系统4

文件管理 文件的逻辑结构 文件的目录 文件的物理结构 文件存储空间管理 文件的基本操作

【深度学习】以图搜索- 2021sota repVgg来抽取向量 + facebook的faiss的做特征检索, 从环境搭建到运行案例从0到1

文章目录 前言安装小试牛刀用repVgg抽取向量构建Faiss索引进行相似性搜索项目延伸总结 前言 Faiss的全称是Facebook AI Similarity Search。 这是一个开源库&#xff0c;针对高维空间中的海量数据&#xff0c;提供了高效且可靠的检索方法。 暴力检索耗时巨大&#xff0c;对于…

Mac下certificate verify failed: unable to get local issuer certificate

出现这个问题&#xff0c;可以安装证书 在finder中查找 Install Certificates.command找到后双击&#xff0c;或者使用其他终端打开 安装完即可

tcp三次握手python实现和结果

下载抓包工具 安装 使用1 使用2 结果 红色笔为想要发送的数据。 代码 from scapy.all import * import logginglogging.getLogger(scapy.runtime).setLevel(logging.ERROR)target_ip = 172.20.211.4 target_port = 80 data = GET / HTTP/1.0 \r\n\r\ndef start_tcp(target_…

Mac代码编辑器sublime text 4中文注册版下载

Sublime Text 4 for Mac简单实用功能强大&#xff0c;是程序员敲代码必备的代码编辑器&#xff0c;sublime text 4中文注册版支持多种编程语言&#xff0c;包括C、Java、Python、Ruby等&#xff0c;可以帮助程序员快速编写代码。Sublime Text的界面简洁、美观&#xff0c;支持多…