凡蜕django教程(1):django介绍,前后端分离下的开发方式

  • 78
  • 2023年4月16日19:40:30

版权声明
本系列教程由凡蜕博客编写,100%原创,请不要私自摘抄、转发,谢谢!

引入

当今时代,Web开发已经成为了计算机科学领域中不可或缺的一部分。而Django作为其中最受欢迎和强大的框架之一,其简单易用、高效稳定的特点吸引了越来越多的开发者加入到这个大家庭中来。如果你还没有接触过Django,那么你就来对地方了。本篇教程将带你逐步了解Django,从入门到精通。在这里,我们会详细介绍Django的基础知识,包括模型、视图、模板和表单等;同时,我们也会讲解Django常用功能,如用户认证、表单验证、信号和中间件等;最后,我们还会分享Django最佳实践,以及如何使用Django进行Web应用程序的部署和优化。无论是初学者还是有经验的开发者,都能够从中获得收益。那么,让我们开始这段愉快的Django之旅吧!
file

面向对象

  • 刚接触django的小白
  • 温故而知新、想发现新技巧的老白

让我们先科普一些基础知识~

什么是web开发

Web开发指的是创建和维护互联网上的网站或应用程序的过程。它涉及到多个领域,如前端开发、后端开发和数据库管理等。前端开发主要负责用户界面的设计和实现,使用HTML、CSS和JavaScript等技术来构建网站页面,让用户可以直观地与网站进行交互。后端开发则负责处理服务器端的逻辑,与数据库进行交互来获取和处理数据,提供后台功能以支持前端页面的交互和数据处理。数据库管理则是负责维护网站的数据,并确保其安全性和可靠性。Web开发需要使用各种编程语言和技术,如JavaScript、Python、PHP、Node.js等。
django是个诞生于前后端不分离时期的框架,支持模板引擎服务端渲染前端页面,也可以结合DRF组件实现restfull api开发,更适合当前前后端分离的趋势。

什么是前后端分离

前后端分离是指将前端与后端进行分离开发,前端负责用户界面的设计和实现,后端则负责处理服务器端的逻辑,与数据库进行交互来获取和处理数据。
前后端分离的好处在于,它可以提高开发效率,使得前后端开发人员可以分别专注于各自的领域,同时也可以提高网站的性能和可维护性。

以Django为例,Django是一种使用Python语言开发的Web框架,它提供了一系列的工具和库,可以帮助开发人员快速地构建Web应用程序。在Django中,可以使用Django REST Framework来实现前后端分离,它可以让开发人员轻松地创建RESTful API,用于前端页面的数据交互和处理。

具体来说,在Django中,我们只需要关心后端接口的技术实现,可以使用Django REST Framework来构建API,并与数据库进行交互来处理数据,然后将结果返回给前端页面进行显示和处理。前端使用vue、react等构建页面,并调用我们编写的api接口,我们不关心前端是如何实现的,我们只需要提供对外接口就行,前后端交互大多使用json来实现。

通过前后端分离的方式,可以将前端和后端进行解耦,使得各自的开发人员可以更加专注于各自的领域,提高开发效率和网站性能,同时也可以更好地维护和扩展网站。

什么是json

你可能经常听到这个词,JSON具有跨语言、易于阅读和编写、可扩展性等优点,在Web开发、移动应用开发、物联网等领域得到了广泛应用,熟悉JSON格式是对于web开发非常重要的。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使用简洁的文本格式来表示复杂的数据结构。JSON格式通常用于客户端和服务器之间的数据交互,也被广泛应用于各种编程语言和应用程序中。

JSON中包含两种类型的数据结构:对象和数组。对象是由大括号“{}”包裹的一组“键-值”对,键和值之间用冒号“:”分隔。例如,{"name": "Alice", "age": 20} 表示一个名为Alice,年龄为20的对象。数组是由中括号“[]”包裹的一组值,值之间用逗号“,”分隔。例如,["apple", "banana", "orange"] 表示一个包含三个元素的数组。

JSON中的数据类型有以下几种:

字符串(string):一串Unicode字符序列,用双引号“"”括起来。
数值(number):整数或浮点数。
布尔值(boolean):true或false。
空值(null):表示空值的特殊类型。
对象(object):一组“键-值”对,用大括号“{}”括起来。
数组(array):一组值的有序集合,用中括号“[]”括起来。

json对象的键必须是字符串值可以是任何类型的数据,例如字符串,数字,布尔值,对象,或数组。

标准的 JSON 示例:

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

错误的 JSON 示例:

{
  "name": "John",
  1: 30,
  "city": "New York",
}

一个是键不能为1,一个是最后的键值对不能有逗号

django、python与IDE版本选择

这个是很重要的,如果你选择了错误的版本,可能会导致各种奇奇怪怪的兼容、安全性问题,通常我们选择长期支持的LTS版本。
来看看官方给的python和django版本对应图:
file
再看看官方对django的版本支持时间:
file

综合考虑更新时间、lts支持、以及生态兼容问题,我们选择django3.2版本,python3.7来作为我们教程的开发环境。
IDE我们选择使用pycharm,你可能用的是社区版,没关系我会以命令行的方式创建项目。

项目地址

码云:https://gitee.com/bronya0/django-project
你可以拉下这里的代码,对照着查看本教程

让我们开始创建一个django项目

前面废话了那么多(虽然我觉得很重要),别急,我们现在就来创建一个django项目。

安装依赖

我们在项目根目录新建一个requirements.txt文件,写入一行:
django==3.2.18
通常我们会把项目用到的依赖写在requirements.txt里,然后执行命令让pip去安装依赖:

我们打开pycharm下面的终端,输入以下命令,安装django:

pip3 install -r requirements.txt -i https://pypi.douban.com/simple

file

-i参数表示使用镜像来加速下载,这里我们使用豆瓣的镜像。
这样我们就装好了django,接下来让我们初始化一个django项目。

初始化项目

同样是在终端里,执行以下命令:
django-admin startproject django_demo
file
刷新一下左侧的目录,你会发现项目已经创建好了,目录结构如下:

F:.
│   LICENSE
│   README.en.md
│   README.md
│   requirements.txt
│
|----
    │   manage.py
    │
    └───django_demo
            asgi.py
            settings.py
            urls.py
            wsgi.py
            __init__.py

我们看看每个文件都是干啥的:

  • manage.py: 命令行工具,用于在项目中执行各种任务,如运行开发服务器、同步数据库、创建新应用程序等。
  • django_demo目录: 包含了整个项目的Python包,它包含了以下文件:
  • asgi.py: 在ASGI兼容Web服务器上运行的应用程序入口。
  • settings.py: 包含有关Django项目设置的所有配置,例如数据库设置,静态文件和模板路径,调试模式等等。这是大多数Django项目中最重要的文件之一。
  • urls.py: 包含项目的所有URL映射,指定了哪些视图处理哪些URL请求,也称为路由器。
  • wsgi.py: 在WSGI兼容Web服务器上运行的应用程序入口。
  • __init__.py: 空文件,它告诉Python将该目录视为Python包。

我们暂时只需关心settings.pyurls.py即可。

配置

接下来,我们需要对settings.py进行配置,配置啥呢?
1、中文支持
2、时区,改成亚洲上海
3、允许跨域
4、host白名单

我们搜索并找到对应的配置,修改成如下:

ALLOWED_HOSTS = ['*']
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Aisa/Shanghai'
USE_TZ = False

对应的作用如下:

  1. ALLOWED_HOSTS:这个设置定义了哪些主机能够访问该 Django 实例。此处的 '*' 表示允许所有的主机访问。
  2. LANGUAGE_CODE: 这个设置表示该 Django 实例使用的语言代码,zh-hans 代表简体中文。
  3. TIME_ZONE: 这个设置定义了时区,将时区设置为亚洲/上海,指定了该 Django 实例所在的时区为中国标准时间。
  4. USE_TZ: 这个设置表示是否启用时区支持。如果设置为 True,则 Django 将会在所有日期/时间处理过程中使用时区,默认值为 True。而在这里将其设为 False,即不启用时区支持。

改好了后咱们就可以启动啦~

启动项目

如果你的pycharm是企业版,可以直接点右上角的绿色启动按钮启动项目,如果是学习版可能没有这个按钮,不过没关系,不管你用的是什么版本,我都推荐你使用命令行的方式启动,更加自由!

打开终端,执行cd命令到我们刚刚创建的项目里面,然后执行runserver命令启动,如下:

cd django_demo
python manage.py runserver 127.0.0.1:8000

其中,127.0.0.1:8000 表示服务器监听本地回环地址,即只能通过本机访问该 Django 项目,并且监听在 8000 端口。这意味着该 Django 项目只能通过本地 IP 地址访问,其他计算机无法访问该项目。如果想要其他计算机也能够访问该 Django 项目,需要将其替换为计算机的 IP 地址或者使用 0:8000 的形式,使其监听所有可用的 IP 地址。

当我们看见如下内容,表示启动成功:

file

让我们点击http://127.0.0.1:8000/ ,在浏览器中就能成功访问django了:

file

下一篇文章,我们讲解一下django中非常重要的模型、视图的概念,并且写一个可以访问的接口,从而对整体流程有所把握。

    80%的人都看过的文章

本文来自凡蜕博客(https://blog.ysboke.cn), 转载请带上地址.。
匿名

发表评论

匿名网友