Django学习笔记一初识Django

Django学习笔记一初识DjangoDjango学习笔记,入门Django框架

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1 Django简介

1.1 基本介绍

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。开发者使用Django,只要很少的代码,就可以轻松完成一个网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 。Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

MVC 优势:

  • 低耦合
  • 开发快捷
  • 部署方便
  • 可重用性高
  • 维护成本低
  • …

Python 加 Django 是快速开发、设计、部署网站的最佳组合。

1.2 开发框架模型

1.2.1 简介

目前的开发框架模型可以按是否前后端分离来划分。其中各自特点如下:

前后端不分离特点:

  • 后端需控制数据的展示
  • 前后端不分家,耦合严重
  • 返回的是HTML页面,适应性、拓展性差
    • 只能用于浏览器,其它终端不匹配

前后端分离的特点:

  • 当前主流
  • 后端只对数据进行处理,只提供数据
  • 前端效率、页面好不好看,全由前端负责,前后端完全独立
  • 解耦合
  • 前后端同时开发,缩小业务上线周期
  • 绝大多数情况下,前端发送json格式的参数,后端同样以json格式的数据返回
    • 适应性、拓展性好
    • 适合多终端运行同一套接口(PC、APP、小程序等)

在本文中,对前后端不分离的开发框架模型这里不作叙述,这里主要介绍前后端分离的MVC模型和MVT模型。

1.2.2 MVC模型

  • 体现:Java常用MVC模式,比如SpringMVC。
  • MVC各部分的解释
    • M/Model(模型):主要封装对数据层的操作,对数据库的数据进行增删改查操作。
    • V/View(视图):用于封装结果的,然后生成用于展示html。
    • C/Controller(控制器):用于接收请求,然后处理业务逻辑,并返回结果。它处于Model和View之间,与两者交互。
  • 图解
    在这里插入图片描述

1.2.3 MVT模型

  • 体现:Python中的Django框架就是MVT

  • MVT各部分的解释

    • M/Model(模型):与MVC的M功能相同,主要封装对数据层的操作,对数据库的数据进行增删改查操作。
    • V/View(视图):与MVC的C功能相同,接收请求,逻辑处理,返回结果。
    • T/Template(模板):和MVC中的V功能相同,负责封装和生成要返回的html。
  • 图解

    MVT模型

2 Django安装

如果你还未安装Python环境需要先下载Python安装包。注意:目前的 Django 1.6.x 以上版本已经完全兼容 Python 3.x。

使用pip3 install Django==版本号 -i https://pypi.tuna.tsinghua.edu.cn/simple即可安装Django,注意使用镜像源下载,不然下载速度会很慢。

检查是否安装成功:

image-20220305175927603

3 Django项目框架—创建第一个项目

3.1 Django管理工具

安装好Django之后,我们现在就有了可用的管理工具django-admin,这个其实就是一个py文件,代码如下:

from django.core import management
 
if __name__ == "__main__":
    management.execute_from_command_line()

django-admin.py调用django.core.management来执行命令,这个函数会根据命令行参数解析出命令的名称,根据命令的名称来调用相应的Command执行命令。

3.2 创建第一个项目

使用django-admin来创建HelloWorld项目:

django-admin startproject HelloWorld

创建完成后,我们可以查看HelloWorld的目录结构如下:

image-20220305191934585目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

我们进入HelloWorld目录后输入以下命令启动服务器:

python3 manage.py runserver 0.0.0.0:8000

其中0.0.0.0是为了让其他电脑能连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000,但建议指明端口号。

在浏览器输入我们的ip地址(如果是云服务器,则输入公网地址,如果是本机,则可以输入本机地址:127.0.0.1)。这里特别说明,若是云服务器,我们必须在控制台开放8000端口号和80端口号,要不然访问不了。如果没有将IP地址添加到ALLOWED_HOSTS,则会出现如图错误:

Django学习笔记一初识Django

我们需要将IP地址添加到settings.py中的ALLOWED_HOSTS中。再次访问出现如下界面,此为Django的默认界面:

3.3 视图和URL配置

在先前创建的HelloWorld目录下的HelloWorld目录新建一个views.py,并输入代码:

from django.http import HttpResponse
 
def hello(request):
    return HttpResponse("Hello world ! ")

接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:

from django.urls import path
 
from .views import hello
 
urlpatterns = [
    path('', hello),
]

完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:

Django学习笔记一初识Django我们可以修改path,例如改为path('/hello', hello),那么url即为:http://127.0.0.1/hello。这个path函数可以接收四个参数,分别是两个必选参数:route、view和两个可选参数:kwargs、name。语法格式如下:

path(route, view, kwargs=None, name=None)

  • route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
  • view: 用于执行与正则表达式匹配的 URL 请求。
  • kwargs: 视图使用的字典类型的参数。
  • name: 用来反向获取 URL。

注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188694.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • redis是单线程还是多线程,有哪些特点(linux多线程面试题)

    0.redis单线程问题单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。1.为什么说redis能够快速执行(1)绝大部分请求是纯粹的内存操作(非常快速)(2)采用单线程,避免了不必要的上下文切换和竞争条件(3)非阻塞IO-IO多路复用2.redis的内部实现 内部实现采用epoll,采用了epoll+自己…

    2022年4月15日
  • Python图像处理基本操作[通俗易懂]

    Python图像处理基本操作[通俗易懂]在Python中进行图像处理可以使用的库有很多,本文主要介绍下面三个:OpenCV、PIL、skimage。其中,OpenCV是图像处理中最强大的一个库,它的源代码是由C\C++写成的,所以原版的OpenCV可以与C、C++无缝结合。Python版的OpenCV主要依赖于cv2这个包来实现。Python里面自带一个PIL(pythonimageslibrary),但这个库现在已经停止更新了,所以使用Pillow,它是由PIL发展而来的

    2022年10月14日
  • 图书馆管理系统UML各种图「建议收藏」

    图书馆管理系统UML各种图「建议收藏」1用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。  【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。  用例图所包含的元素如下:actor、usecase、子系统、四中关系(如下:)如下是图书管理系统中管理员用例图:

    2022年10月22日
  • fisher最优分割法_最小二乘一定有最优解

    fisher最优分割法_最小二乘一定有最优解给定一个无向图 G=(V,E),每个顶点都有一个标号,它是一个 [0,231−1] 内的整数。不同的顶点可能会有相同的标号。对每条边 (u,v),我们定义其费用 cost(u,v) 为 u 的标号与 v 的标号的异或值。现在我们知道一些顶点的标号。你需要确定余下顶点的标号使得所有边的费用和尽可能小。输入格式第一行有两个整数 N,M,N 是图的点数,M 是图的边数。接下来有 M 行,每行有两个整数 u,v,代表一条连接 u,v 的边。接下来有一个整数 K,代表已知标号的顶点个数。接下来的 K

    2022年8月9日
  • Ajax 跨域,这应该是最全的解决方案了

    Ajax 跨域,这应该是最全的解决方案了

    2021年10月13日
  • asp.net专业实习——网上花店系统

    asp.net专业实习——网上花店系统2019.5.2项目适用vs2010直接打开后更改数据库连接字符串即可如果在添加商品遇到报错,多半是输入的字符太多了链接:https://pan.baidu.com/s/1ulU89ogdHKRVGv9ad5Zszw提取码:he88复制这段内容后打开百度网盘手机App,操作更方便哦此项目是用vs2013开发,使用时需要重新配置连接字符串。。如果你的环境是vs20…

    2022年7月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号