Django框架学习(一)Django框架安装和项目创建详解
文章目录
Django框架学习(一)Django框架安装和项目创建详解一、简介1.1介绍1.2 URL1.3、框架原理二、安装1. 方法一 :cmd命令中安装2.方法二:下载Django包进行安装三、创建项目1.遇到了问题:创建django项目报错ModuleNotFoundError: No module named ‘zoneinfo‘。2.卸载Django3.创建Django项目4.运行 Django web服务5.创建的Django项目中没有templates文件夹一、简介
Django 是一个功能强大的 web 框架,适用于写复杂的 Web 工程。
1.1介绍
Django是一个开放源代码的Web应用框架,由Python写成,采用了MT’V的框架模式.即Model,View,Template组成.许多成功的网站和APP都基于Django.说到底,其实Django内部就是对 Socket 连接的强大封装.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
Django想要理解,首先要明白的就是Django的大致组成,它大致由四部分组成,也就是提到的MTV模型:
Model(模型):负责业务对象与数据库的对象(orm)Template(模板):负责把数据展示给用户(前端的东西)View(视图):负责业务逻辑,并在适当的时候会调用Model和TemplateURL分发器:通过前台请求的url,来分配调到相应的函数操作,类似于网络中的路由表,控制网络的下一跳的地址。
了解了组成部分,接下来我们需要了解Django请求的生命周期:
1.2 URL
Uniform Resoure Locator “统一资源定位符”。一个完整的URL包括:协议部分、网址、文件地址部分。协议部分以//为分隔符,在interner中,我们可以使用多种协议:
HTTP——HyperText Transfer Protocol(超文本传输协议)
FTP–File Transfer Protocol(文件传输协议)
Gopher–The Internet Gopher Protocol(网际Gopher协议)
File–本地文件传输协议
HTTPS–安全套接字层超文本传输协议(http的安全版)
1.3、框架原理
业务流程原理url请求---->访问路由系统(负责分发请求到相应视图函数)------>视图函数(处理请求)------>DataBase(数据库操作数据生成对应页面返回给用户)
底层实现原理
本质是Django就是一个Socket服务端,用户的浏览器其实就是一个Socket客户端.用户访问网站的过程就是服务端与客户端Socket通信的过程。
Socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
参考原文链接:/cqkcm/article/details/103627677
二、安装
1. 方法一 :cmd命令中安装
win+R进入cmd执行如下命令即可。
pip install django
检查Django是否安装好, 并且查看安装的Django版本
python -m django --version2.1.3
如果显示出一个版本数字(比如这里就是2.1.3) 表示已经安装好了。
上面的方法比较简便,但是不知道为什么我安装出现了错误,用了第二种方法可以,方法如下:
2.方法二:下载Django包进行安装
下载Django 下载地址:/download/(注意Python与Django的版本号要对应。目前 Django 1.6.x 以上版本已经完全兼容 Python 3.x。)下载完 Django 压缩包,解压并和Python安装目录放在同一个根目录,进入 Django 目录,输入cmd 执行python setup.py install,然后开始安装,Django将要被安装到Python的Lib下site-packages。
然后是配置环境变量,将这几个目录添加到系统环境变量中: D:\AnACONDA\Lib\site-packages\Django-4.0.1-py3.8.egg\django;D:\AnACONDA\Lib\site-packages\scripts。
添加完成后就可以使用Django的django-admin.py命令新建工程了。检测是否安装完成:出现版本号就说明安装成功了。
python -m django --version
三、创建项目
进入储存的路径(就是你想将项目存放在哪里),然后输入:
django-admin startproiect djangoText(项目名称)
输入之后如下:
1.遇到了问题:创建django项目报错ModuleNotFoundError: No module named ‘zoneinfo‘。
解决方案:
降低版本,由于django版本太高或者python版本太低,选择一个修改版本,就ok了。这里我们选择降低Django版本。
2.卸载Django
这里我的Python是3.9版本的,安装Django4.0版本太高了,于是换了版本3.0.14可以
重新按照上面的步骤安装成功后,选择一个目录储存项目,输入:
3.创建Django项目
django-admin startproject firstDjango
firstDjango是项目名称。于是在路径中会生成一个firstDjango文件夹。
生成的目录结构:
进入firstDjango:
目录解释:(参考:/tut/webdev/django/02/)
admin.py文件跟网站的后台管理站点配置相关。
apps.py文件用于配置当前子应用的相关信息。
migrations目录用于存放数据库迁移历史文件。
models.py文件用户保存数据库模型类。
tests.py文件用于开发测试用例,编写单元测试。
views.py文件用于编写Web应用视图函数。
原文链接:/qq_62870237/article/details/122989102
manage.py 是一个工具脚本,用作项目管理的。以后我们会使用它执行管理操作。
里面的firstDjango/
目录是python包。 里面包含项目的重要配置文件。这个目录名字不能随便改,因为manage.py 要用到它。
firstDjango/settings.py
是 Django 项目的配置文件. 包含了非常重要的配置项,以后我们可能需要修改里面的配置。
firstDjango/urls.py
里面存放了 一张表, 声明了前端发过来的各种http请求,分别由哪些函数处理。
firstDjango/wsgi.py
要了解这个文件的作用, 我们必须明白wsgi 是什么意思。
python 组织制定了web 服务网关接口(Web Server Gateway Interface) 规范,简称wsgi。参考文档 /dev/peps/pep-3333/.遵循wsgi规范的 web后端系统, 我们可以理解为 由两个部分组成:wsgi web server 和 wsgi web application
它们通常是运行在一个python进程中的两个模块,或者说两个子系统。
wsgi web server接受到前端的http请求后,会调用 wsgi web application 的接口(interface)( 比如函数或者类方法)方法,由wsgi web application具体处理该请求。然后再把处理结果返回给 wsgi web server, wsgi web server再返回给前端。如下图所示:
为什么要搞出两个子系统?
因为这两个子系统有各自负责的重点。
wsgi web server: 负责提供高效的http请求处理环境,可以使用多线程、多进程或者协程的机制。http 请求发送到 wsgi web server , wsgi web server 分配 线程或者进程或者轻量级线程(协程),然后在 这些 线程、进程、或者协程里面,去调用执行 wsgi web application 的入口代码。
wsgi web application: 被调用后,负责处理业务逻辑。 业务逻辑的处理可能非常复杂, wsgi web application 需要精心的设计来正确处理。
django是 wsgi web application 的框架,它只有一个简单的单线程 wsgi web server。 供调试时使用。
产品正式上线运行的时候,通常我们需要高效的 wsgi web server 产品,比如 gunicorn,uwsgi,cherrypy等,结合Django ,组成一个高效的 后端服务。
所以这个 wsgi.py 就是 提供给wsgi web server调用 的接口文件,里面的变量application对应对象实现了 wsgi入口,供wsgi webserver调用 。
4.运行 Django web服务
django虽然只是 wsgi web application 的框架,但是它也有一个简单的 wsgi web server。 供调试时使用。所以也构成一个完整的后端web服务。 本地调试代码的时候,完全可以运行起来。运行开发web 服务只需要在命令行窗口里面,首先进入到项目根目录 ,比如,我们这里就是E:\PythonCode\firstDjango,然后执行如下命令:
python manage.py runserver 0.0.0.0:80
这样服务就会被启动。 我们就可以在浏览器访问web服务了。
0.0.0.0:80解释:
0.0.0.0:80是指定 web服务绑定的 IP 地址和端口。
0.0.0.0表示绑定本机所有的IP地址, 就是可以通过任何一个本机的IP (包括 环回地址 127.0.0.1 ) 都可以访问我们的服务。
80表示是服务启动在80端口上。
运行如果不行就运行一下这个代码:
python manage.py migrate
请打开浏览器,地址栏输入 ‘127.0.0.1’或者复制cmd中的网址: http://localhost:8000/,就可以看到如下的界面,表示Django服务搭建成功,启动成功。
注意:启动web服务的命令行窗口不能关闭,如果关闭,web服务就停止了。
5.创建的Django项目中没有templates文件夹
只需要先在创建的项目下创建一个名为templates的文件夹
然后在setting.py中配置路径
添加红框中的内容就可以了
在templates文件夹中创建的HTML文件就可以在view文件中的函数成功调用