四方显神

导航

Django开发笔记(一)入门:web开发框架与Django下载运行

 

一、web框架概念

web应用程序的本质:

  • 接收并解析HTTP请求,获取具体的请求信息;
  • 处理本次HTTP请求,即完成本次请求的业务逻辑处理;
  • 构造并返回处理结果——HTTP响应。

 一个请求信息来了,请求首行、请求头、请求体。

请求首行包含三个内容:请求方式,请求路径,请求协议版本。

web框架有助于减轻网页开发时共通性活动的工作负荷,例如许多框架提供数据库访问接口、标准样板以及会话管理等等,可以提升代码的可再用性。

说简单点就是web 框架用于搭建Web应用程序,免去不同web应用相同代码部分的重复。

二、Django介绍

Python下有许多不同web框架,Django是重量级选手里具有代表性的一款。

Django采用了MVT的软件设计模式,M(Model)模型,V(View)视图,T(Template)模板。

这个MVT模式并非Django,它是借鉴了MVC(controller)模式衍生出来的。

MVC:

  • M:(Model)模型,用于完成操作数据库;
  • V:(View)视图,里面的代码就是用于展示给客户端的页面效果;
  • C:(Controller)控制器,是一个类或者函数,里面的代码就是用于项目功能逻辑的,一般用于调用模型来获取数据,获得到的数据通过调用视图文件返回给客户端;

MVT:

  • M:(Model)模型,与MVC里的M功能相同,用于完成操作数据库;
  • V:(View)视图,与MVC中的C功能相同,业务逻辑处理层封装,接收请求,进行业务处理,返回应答;
  • T:(Template)模板,与MVC中的V功能相同,负责封装构造要返回的html。

MVT模型的工作流程:

路由控制器是将请求转发给对应的视图函数,完成业务逻辑,视图函数将从model中获取的数据嵌入到template中的模板文件(html)渲染成一个页面字符串,返回给客户端的流程。

Django重点是四个部分:URL路由器+MVT

渲染:我们要从models里面取出来的数据,用一个样式(样式在templates里)展示给客户,把数据嵌入到页面中就是一个渲染的动作,渲染完成了返回给浏览器(也就是一个响应的动作),这个时候给它的就是一个完整的html页面。

Django框架:

三、Django下载与运行

我本次学习和使用的版本是3.2LTS版本。

一个科普:

目前开源软件发布一般会有两个不同的分支版本:

  • 普通发行版本:经常用于一些新功能,新特性,但是维护周期短,不稳定;
  • 长线支持版本:维护周期长,稳定

软件版本格式:大版本,小版本,修订号

大版本一般是项目内容/软件的核心架构发生改动,以前的代码已经不适用于新的版本;

小版本一般是功能的删减,删一个功能,小版本+1,减一个功能,小版本+1;

修订号一般是原来的代码出现了bug,会针对bug代码进行修复,此时会增加修订号数值。

检查pip安装:

Django每个版本对Python解释器有要求,比如说Django3.2要求Python解释器必须是3.6以上。

pip是Python下包管理的命令,从中央仓库上利用网络下载到本地。pip -v查看pip对应哪个解释器。

pip --version查看pip版本和对应的Python解释器版本:

如果还未安装,可以通过一下命令安装:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
$ sudo python get-pip.py    # 运行安装脚本

注意:用哪个版本的 Python 运行安装脚本,pip 就被关联到哪个版本,如果是 Python3 则执行以下命令:

$ sudo python3 get-pip.py    # 运行安装脚本。

一般情况 pip 对应的是 Python 2.7,pip3 对应的是 Python 3.x。

下载Django:

pip install django==3.2 

这里注意,想要安装制定版本一定要屁股后面指明,否则默认下载最新版本。也可以自己更换pip源:

pip源:
    https://pypi.douban.com/simple/  豆瓣源
    https://pypi.tuna.tsinghua.edu.cn/simple   清华源
pip install django==3.2 -i https://pypi.douban.com/simple/

pip3 list命令检查一下有没有安装好:

 现在是将Django环境安装好了,这个时候回有全局命令“django-admin":

django-admin有很多参数:

不需要记哈,只需要记一个startproject创建一个Django项目,后面跟一个项目名称(生成项目的命令):

django-admin startproject demo

完成了以后,直接pycharm下面的终端terminal中使用命令运行django:

python manage.py runserver 

这里其实完整命令是

python manage.py runserver IP PORT

ip不填默认本机,端口号默认8000,出现图上的东西就是运行好了:

 在浏览器中访问显示的地址http://127.0.0.1:8000.效果如下则表示正确安装了:

 

关于最后启动这部分,我最开始没有启动起来,报错:

ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environm ent?

后来参考:django安装教程-CSDN博客 这个里的,他多了一步 >>import django 这步。我进行了这一步后就可以正常启动了。

 

四、Django创建应用

我们创建的mysite项目,项目结构如下:

其中manage.py是交互文件,

关于这个目录结构的一些解释:

Django框架里面包含了四个文件:urls.py,view.py,models.py,templates四个,但是这个项目同名文件mysite里只有urls.py没有view.py和models.py。因为每个项目会有多个子项目,将models和view放在每个子项目里,做到了解耦的目的。接下来创建子应用看一下创建后的目录结构。

pycharm里打开终端使用命令创建子应用:

python manage.py startapp 子应用名称

这里,我使用 python3 manage.py startapp 子应用名称 创建就不行,不知道为什么(埋雷)。

新建了一个项目后,项目结构:

每个项目至少对应一个应用,我们在"djanjo-admin startproject项目名"的时候,它并未给我们创建一个默认的app。

app需要我们单独通过一个命令创建:"python mange.py startapp 子应用名称" 。

捋一捋到此为止我们的步骤:

  • 创建一个Django项目: django-admin startproject 项目名
  • 启动项目: python manage.py runserver IP PORT
  • 创建应用:python manage.py startapp 应用名

五、 将pycharm对接到Django上

当然如果每次运行项目都要在终端下输入命令的话,很麻烦,这时候我们可以借助pycharm直接自动运行这段命令.当然,这个需要我们在pycharm配置一下的.

这里老师是打开pycharm初始页面即可创建Django,参考:Pycharm 搭建 Django 项目 (非常详细)_pycharm django_流年若逝的博客-CSDN博客

这里他使用的专业版,我自己是社区版本,我搜了网上社区版pycharm常见Django项目都是用终端命令行。

为了跟老师保持一致,我也开始使用专业版pycharm,专业版涉及到破解,我参考的:https://www.cnblogs.com/kkhan/p/17155737.html 注意这个不可以用2023.2.5专业版,我亲测不行,改成了2022.1.3版也就是文中的版本了。

然后打开pycharm,首页如下配置,注意moreSettings里面默认创建一个templates,不过没有默认创建应用,可以自己创建一个app01:

 想要启动这个mysite,在edit configurations处配置(默认已经配置好了,大多数人不需要改动):

主机号不写就是默认本机,端口号你可以自己改或者就用默认的。

然后点击 Run就可以了,再访问也可以出Django运行成功的页面(和上面出现的小火箭一样)。

小结:

两个重要命令:

创建Django项目:django-admin startproject 项目名

启动Django项目:python manage.py runserver IP PORT

创建应用:python manage.py  startapp 应用名

 

posted on 2023-12-01 20:49  szdbjooo  阅读(96)  评论(0)    收藏  举报