侧边栏壁纸
博主头像
黑色閃光w博主等级

行动起来,活在当下

  • 累计撰写 28 篇文章
  • 累计创建 14 个标签
  • 累计收到 152 条评论

目 录CONTENT

文章目录

Django——PythonWeb框架不完全指南

黑色閃光w
2023-04-07 / 2 评论 / 3 点赞 / 2737 阅读 / 9148 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-03-13,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

Django是一个流行的Python Web框架,它采用了MVC(Model-View-Controller)的设计模式,提供了一个强大且灵活的开发框架,用于快速构建高效、可扩展和安全的Web应用程序。

Django还支持多种数据库后端,包括MySQL、PostgreSQL、SQLite和Oracle等,并支持部署到各种云平台,如AWS、
Django拥有一个强大的ORM(对象关系映射)层,允许开发者使用Python代码来定义模型和关系,而不是使用SQL语句。此外,Django还提供了内置的用户认证、管理后台、表单验证、URL路由等功能,这些功能使得开发者可以快速构建功能强大的Web应用程序。
Azure和Google Cloud等。

正文

安装Django

既然是PythonWeb框架,当然是需要Python的运行环境,Django的要是Python3.5+
开始安装Django框架,我们使用pip来安装Django。
在cmd中输入

pip install django

因为我想安装最新版的,所以并没有指定版本号,pip则默认下载最新版本。

等待pip下载,结果报错了。
image-1680854449305
根据报错信息,我们得知pip的版本过低,现在我们用一下代码升级pip

python.exe -m pip install --upgrade pip

等待片刻,当出现以下信息时,pip更新成功。
image-1680855052076

再次运行pip安装Django指令
image-1680855137579

在我的电脑中已经安装过Django了,所以会出现这些信息。如果没有安装过,则可能出现以下信息(或类似)

Successfully installed Django-4.0.2

在cmd中输入以下指令

django-admin

如果控制台返回以下信息!
image-1680855630487

Django常用命令

在刚才我们使用了

django-admin

这个命令来验证自己的Django是否正确安装,这个就是Django的命令之一。接下来由我给大家讲讲一些常用的命令:

命令作用
startproject用来创建Django项目
startapp用来创建一个Django应用
check用来校验Django项目的完整性
runserver用来本地简易进入Django环境并运行Django项目
shellDjango Shell使用命令
test单元测试用例
makemigrations创建模型变更的迁移文件
migrate执行上一个命令创建的迁移文件
dumpdata把数据库数据导出到文件
loaddata把文件数据导入到数据库中

创建Django项目

项目命令介绍完毕,接下来就是创建自己的Django项目了
image-1680856918818
才Pycharm中新建项目,并在左侧选择Django,然后单击创建。
等待PyCharm编制索引完成之后,一个Django的项目就创建完成。

Django项目的文件结构

这个就是一个Django项目的文件结构
image-1680857421790

进入djangoProject目录中:

settings.py:这个文件就是Django项目的配置文件,包含了数据库、模板、静态文件等配置。
urls.py:这个文件就是Django的路由配置文件,定义了URL到视图函数的映射关系。
wsgi.py:这个文件就是Django作为wsgi应用所需要的 WSGI 服务器的入口文件。
asgi.py:这个文件与wsgi.py文件类似,是ASGI 服务器的入口文件。

在项目根目录中:

manage.py:这个文件是项目管理文件(我的理解就是类似于SpringBoot的)

这就是一个简易的Django项目的
项目结构,它可能根据开发需求的不同,拥有着一些不同的结构。

Django项目启动测试

现在我们已经拥有了一个Django项目,利用runserver命令来运行Django项目
单击Pycharm中的终端。
image-1680858262841
输入以下指令

python manage.py runserver

image-1680858394564
当控制台返回这些信息,并有一个链接再其中http://127.0.0.1:8000/
这就证明Django项目启动成功,我们访问这个链接。
image-1680858489192
这个就是Django的默认页面了。

Django应用

Django应用与Django项目的区别

  • Django项目是一个基于Django的Web应用。
  • Django应用是一个可以重用的Python软件包。

每个应用都可以自己管理模型、视图、模板、路由、以及静态文件等。


一个Django项目可以包含一组配置,和若干个Django应用

创建一个Django应用

操作继续在Pycharm中的终端进行。
使用Ctrl+C将刚才启动的项目终止。
继续输入

python manage.py startapp blog

来创建一个名为blog的Django应用。
敲击回车之后,在项目目录中即可看到一个名为blog的软件包
image-1680859166823

Django应用的文件结构

进入blog目录中:

views.py:这个文件是视图处理的地方,定义了应用程序的视图函数。
models.py:定义了应用的数据模型。
admin.py:定义了应用程序的管理后台。
apps.py:声明应用的地方。
tests.py:编写应用测试用例的地方。
urls.py:(该文件不存在需要自行创建)管理应用路由的地方。

Django HelloWorld

Django视图

通过函数逻辑来生成表现页面:
进入blog/views.py文件中:
写入代码:

from django.http import HttpResponse
from django.shortcuts import render


# Create your views here.

# 传入request请求对象
def index(request):
    # 直接返回字符串是不会显示的,所以我们需要将字符串封装成Http响应体。
    return HttpResponse("Hello, world.")

仅仅只是代码写好了,是不会显示到页面的,我们需要给这段代码注入灵魂——配置路由。

Django路由

我们需要配置路由绑定视图函数和URL。

这一步类似于Java的SpringBoot项目的Controller层的@RequestMapping注解。

Django路由的配置分为应用层次和项目层次,在这里我们先配置应用层次的。

应用层次的Django路由配置

在blog包下创建urls.py文件。

导包

# 引入Django框架的依赖
from django.urls import path, include

# 引入blog应用的视图函数
import blog.views

定义路由映射关系

# 定义路由映射关系
urlpatterns = [
    path('hello_world', blog.views.hello_world),
]

完整代码

# 引入Django框架的依赖
from django.urls import path, include

# 引入blog应用的视图函数
import blog.views

# 定义路由映射关系
urlpatterns = [
    path('hello_world', blog.views.hello_world),
]

项目层次的Django路由配置

应用层次的路由配置完成之后,接着就是项目层次路由配置。
进入djangoProject/urls.py文件中:

导包

from django.contrib import admin
from django.urls import path, include

定义路由映射关系

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

完整代码

"""djangoProject URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/4.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

添加blog应用至项目中

进入djangoProject/setting.py文件中:
找到名为INSTALLED_APPS的数组,在其中添加:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # 引入blog应用
    'blog.apps.BlogConfig',
]


blog.apps.BlogConfig就是在创建Django应用时,自动创建好的blog/apps.py文件,BlogConfig则是其中的一个配置方法。

运行项目

配置完成之后,我们就可以将项目跑起来看看,我们的Hello World能不能显示在视图中。


如果说每次都在Pycharm的终端中写命令跑项目比较麻烦的话,我们可以使用Pycharm的构建工具。
image-1680861664543
单击绿色播放键,项目就会自动启动。
单击地址
image-1680861729628
虽然显示了Page not found(404),但是我们看到了我们自己写的blog应用
然后再路径之后添加/blog/hello_world,回车访问。
跳转页面之后我们就看到了我们自己写的Hello, world.字符串显示在了视图中。
image-1680861906738


这时候我们不将服务器关闭,直接修改blog应用中的views.py

from django.http import HttpResponse
from django.shortcuts import render


# Create your views here.

# 传入request请求对象
def hello_world(request):
    # 直接返回字符串是不会显示的,所以我们需要将字符串封装成Http响应体。
    return HttpResponse("我的第一个Django程序")

不重启服务器,直接刷新页面会怎样呢?

没错,我们发现页面的Hello World.,直接就被地换成了我们更改过后的我的第一个Django程序

思考
为什么我们可以在不关闭和重启整个服务的情况下,就可以修改后台代码并直接实装呢?

这就归功于Python这个计算机语言数据解释性语言,由于Python解释器的存在,我们可以省略的编译的步骤,直接热部署。

结语

写到这,我们就完成了我们第一个Django项目的编写。
相较于Java的SpringBoot,Python的语法真的十分简单,如果你有SpringBoot的使用经验,那么掌握Django这个框架,对你来说根本没有难度。
简直就是——简单轻松我擅长!

3

评论区