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函数可以接收四个参数,分别是两个必选参数:routeview和两个可选参数:kwargsname。语法格式如下:

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab plotyy 坐标轴设置,[转载]Matlab plotyy画双纵坐标图实例[通俗易懂]

    matlab plotyy 坐标轴设置,[转载]Matlab plotyy画双纵坐标图实例[通俗易懂]Matlabplotyy画双纵坐标图实例x=0:0.01:20;y1=200*exp(-0.05*x).*sin(x);y2=0.8*exp(-0.5*x).*sin(10*x);[AX,H1,H2]=plotyy(x,y1,x,y2,’plot’);set(AX(1),’XColor’,’k’,’YColor’,’b’);set(AX(2),’XColor’,’k’,’YCol…

    2022年6月22日
    75
  • lldp协议代码阅读_microsoft,lldp协议[通俗易懂]

    lldp协议代码阅读_microsoft,lldp协议[通俗易懂]第1页共17页竭诚为您提供优质文档/双击可除microsoft,lldp协议篇一:lldp协议配置指导lldp协议交换机配置指导802.lab链接层发现协议(linklayerdiscoveryprotocol),将能够使企业网络的故障查找变得更加容易,并加强网络管理工具在多厂商环境中发现和保持精确网络拓扑结构的能力。该协议可望在下月成为一项正式的标准。lldp是一种邻近发现协议。它为以太网网络设…

    2022年6月2日
    42
  • Linux安装Tomcat9[通俗易懂]

    Linux安装Tomcat9[通俗易懂]Linux安装Tomcat91:下载安装包安装完jdk,我们需要下载tomcat了,点我跳转,这样子我们找到BinaryDistributions,下载链接.tar.gz(http://mirrors.cnnic.cn/apache/tomcat/tomcat-9/v9.0.0.M9/bin/apache-tomcat-9.0.0.M9.tar.gz)下载可以用wget

    2022年5月21日
    46
  • git 拉新分支_git基于远程分支新建本地分支

    git 拉新分支_git基于远程分支新建本地分支原文地址:http://www.cnblogs.com/lingear/p/6062093.html开发过程中经常用到从master分支copy一个开发分支,下面我们就用命令行完成这个操作:1.切换到被copy的分支(master),并且从远端拉取最新版本$gitcheckoutmaster$gitpull2.从当前分支拉copy开发分

    2022年8月22日
    7
  • unicodeencodeerror latin-1_gbk codec

    unicodeencodeerror latin-1_gbk codec最近在搞人工智能的东东,玩了玩词云的东西,在编写代码时,出现了一个问题。目的:统计西游记里出现的词的内容。读取西游记整本小说的内容,然后进行统计分析。代码如下:text=open(‘西游记.txt’).read()但是在执行的时候一直报错:UnicodeDecodeError:‘gbk’codeccan’tdecodebyte0x80inposition2:i…

    2025年11月4日
    3
  • PEST分析模型「建议收藏」

    PEST分析模型「建议收藏」PEST分析模型PEST分析模型(PESTAnalysis)PEST模型简介  PEST分析是战略咨询顾问用来帮助企业检阅其外部宏观环境的一种方法。是指宏观环境的分析,宏观环境又称一般环境,是指影响一切行业和企业的各种宏观力量。对宏观环境因素作分析,不同行业和企业根据自身特点和经营需要,分析的具体内容会有差异,但一般都应对政治(Political)、经济(Economic…

    2022年6月5日
    53

发表回复

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

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