前言
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下载,结果报错了。
根据报错信息,我们得知pip的版本过低,现在我们用一下代码升级pip
python.exe -m pip install --upgrade pip
等待片刻,当出现以下信息时,pip更新成功。
再次运行pip安装Django指令
在我的电脑中已经安装过Django了,所以会出现这些信息。如果没有安装过,则可能出现以下信息(或类似)
Successfully installed Django-4.0.2
在cmd中输入以下指令
django-admin
如果控制台返回以下信息!
Django常用命令
在刚才我们使用了
django-admin
这个命令来验证自己的Django是否正确安装,这个就是Django的命令之一。接下来由我给大家讲讲一些常用的命令:
命令 | 作用 |
---|---|
startproject | 用来创建Django项目 |
startapp | 用来创建一个Django应用 |
check | 用来校验Django项目的完整性 |
runserver | 用来本地简易进入Django环境并运行Django项目 |
shell | Django Shell使用命令 |
test | 单元测试用例 |
makemigrations | 创建模型变更的迁移文件 |
migrate | 执行上一个命令创建的迁移文件 |
dumpdata | 把数据库数据导出到文件 |
loaddata | 把文件数据导入到数据库中 |
创建Django项目
项目命令介绍完毕,接下来就是创建自己的Django项目了
才Pycharm中新建项目,并在左侧选择Django,然后单击创建。
等待PyCharm编制索引完成之后,一个Django的项目就创建完成。
Django项目的文件结构
这个就是一个Django项目的文件结构
进入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中的终端。
输入以下指令
python manage.py runserver
当控制台返回这些信息,并有一个链接再其中http://127.0.0.1:8000/
。
这就证明Django项目启动成功,我们访问这个链接。
这个就是Django的默认页面了。
Django应用
Django应用与Django项目的区别
- Django项目是一个基于Django的Web应用。
- Django应用是一个可以重用的Python软件包。
每个应用都可以自己管理模型、视图、模板、路由、以及静态文件等。
一个Django项目可以包含一组配置,和若干个Django应用
创建一个Django应用
操作继续在Pycharm中的终端进行。
使用Ctrl+C
将刚才启动的项目终止。
继续输入
python manage.py startapp blog
来创建一个名为blog
的Django应用。
敲击回车之后,在项目目录中即可看到一个名为blog的软件包
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的构建工具。
单击绿色播放键,项目就会自动启动。
单击地址
虽然显示了Page not found(404),但是我们看到了我们自己写的blog应用
然后再路径之后添加/blog/hello_world
,回车访问。
跳转页面之后我们就看到了我们自己写的Hello, world.
字符串显示在了视图中。
这时候我们不将服务器关闭,直接修改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这个框架,对你来说根本没有难度。
简直就是——简单轻松我擅长!
评论区