Django学习路线之从虚拟环境开始Django初体验

我从半年前接触Django框架,但是学习的时候没有做任何笔记,实操也不多,因此现在回过头来的时候,反而有点生疏。现在我打算系统地整理一遍Django的知识点,分享给大家一起学习。

  1. 虚拟环境
  2. MVC
  3. Django框架
  4. 创建Django项目
  5. 运行Django项目
  6. Django项目结构
  7. DEBUG模式

在这里插入图片描述

1. 虚拟环境

为什么要使用虚拟环境?

直接通过pip install的方式进行安装第三方包的时候,这样安装会将那个包安装到你的系统级的Python环境中:
在这里插入图片描述
Lib文件夹里存放着安装好的模块:
在这里插入图片描述
pip安装的模块,默认安装最新版本的,如果想使用另外一个版本的模块,需要卸载安装

同理,如果你需要用不同的Django版本写多个不同的网站,在维护时,不同版本之间互不兼容

这时候就会碰到一个问题,我如何在电脑中同时拥有Django的多套环境呢?

这时候我们就可以通过虚拟环境来解决这个问题

虚拟环境virtualenv

安装virtualenv

virtualenv是用来创建虚拟环境的软件工具,我们可以通过pip来安装:

pip install virtualenv

在这里插入图片描述

创建虚拟环境
virtualenv [虚拟环境的名字]

创建虚拟环境的时候指定Python解释器:

virtualenv -p C:\Python36\python.exe [virutalenv name]

如图所示:
在这里插入图片描述
回车后等待一段时间,setuptools,pip,whell等都是python这门语言最基本的文件,安装完成后多了一个文件夹即刚刚自己设置的虚拟环境名字

进入虚拟环境

进入这个文件夹:
在这里插入图片描述
可以看到在执行完activate后,命令的开头变了,多了虚拟环境的名称,接下来查看pip已安装的库:
在这里插入图片描述
虚拟环境相比于全局环境安装的库:
在这里插入图片描述
在虚拟环境里安装一个库:
在这里插入图片描述

退出虚拟环境

进入虚拟环境用的是activate,退出的命令只需要在前面加一个de,即deactivate
在这里插入图片描述
virtualenv的不足就在于安装库时,需要进入多个文件夹,非常麻烦

虚拟环境virtualenvwrapper

安装virtualenvwrapper

windows下用pip安装:

pip install virtualenvwrapper-win

如下图所示:
在这里插入图片描述

创建虚拟环境

跟virtualenv的创建方法类似:

mkvirtualenv [virutalenv name]
mkvirtualenv -p python3  [virutalenv name]  # 指定Python版本

如下图所示:
在这里插入图片描述
安装一个six模块:
在这里插入图片描述
到这一步,我们打开cmderdemo文件夹:
在这里插入图片描述
发现并没有刚刚的env_test1文件夹,原因是virtualenvwrapper默认安装到电脑中C盘的当前登录用户的Envs目录下

而安装在c盘会占用大量空间,因此我们需要修改mkvirtualenv的默认路径

修改mkvirtualenv的默认路径

在我的电脑->右键->属性->高级系统设置->环境变量->系统变量中添加一个参数WORKON_HOME,将这个参数的值设置为你需要的路径:
在这里插入图片描述
修改之后,重新打开一个cmder并新建一个虚拟环境:
在这里插入图片描述

这时再来看一下pip list:
在这里插入图片描述
再加深一下印象,可以看到不同虚拟环境之间是不影响的

退出当前虚拟环境

一样的道理,在activate前加上de:

deactivate
切换/进入某个虚拟环境

使用virtualenvwrapper安装虚拟环境时,是自动进入虚拟环境的,退出虚拟环境后,怎么再次进入虚拟环境呢?

使用如下命令:

workon [virutalenv name]

效果如下:
在这里插入图片描述
在虚拟环境里切换另一个虚拟环境也是可以的

列出所有虚拟环境
lsvirtualenv
删除某个虚拟环境
rmvirtualenv [virutalenv name]

虚拟环境pipenv

安装pipenv

windows下使用pip安装:

pip install pipenv

如下所示:

在这里插入图片描述

创建虚拟环境

使用如下命令创建:

pipenv shell

等一会后:
在这里插入图片描述
可以看到,不管哪种安装方式,最基本的东西都是一样的
在这里插入图片描述

进入/退出/删除虚拟环境
pipenv shell    # 进入虚拟环境
exit            # 退出虚拟环境
pipenv --rm     # 删除整个环境  不会删除pipfile

退出直接用exit即可:
在这里插入图片描述
再次进入时只需要pipenv shell(要在项目里)即可:
在这里插入图片描述
查看当前目录:
在这里插入图片描述
其中env_test是之前安装的虚拟环境,而另一个文件,我们打开看一下:

vim Pipfile

使用vim命令打开:
在这里插入图片描述
文件里的内容:

url         # 指定国内pip源,不然下载库会很慢
dev-packages   # 开发环境
packages     # 生产环境
django = “*”    # 表示最新版本
requires       # Python版本

生产环境可以理解为线上的项目

管理开发环境

安装在开发环境下:

pipenv install --dev itchat 

在虚拟环境中运行命令,使用run参数:

pipenv run python manage.py runserver

pipenv有个缺点,lock不稳定而且时间非常长,所以安装包的时候记得加上:

--skip-lock

最后开发完成要提价到仓库的时候在pipenv lock:

pipenv install django --skip-lock

2. MVC与MVT

MVC

Django也遵循MVC思想,但是有自己的一个名词,叫做MVT

下面将通过模拟用户注册来讲解MVC思想:
在这里插入图片描述

  • C: controller,控制器,接收请求进行处理
  • M: model,与数据库交互的模型
  • V: view,视图,即产生的html界面

具体步骤:

  1. 用户提交注册信息
  2. 控制器将请求交给模型
  3. 模型将数据交给数据库(写入)
  4. 数据库返回写入结果(成功或失败)
  5. 模型将结果返回给控制器
  6. 视图根据结果生成对应的界面
  7. 视图将界面返回给控制器
  8. 控制器将界面返回到浏览器

MVC的思想是分工,即让专门的人做专门的事,或者说"解耦"

MVT

下面来看一下MVT:
在这里插入图片描述
其实作用是一样的

3. Django框架

下面是Django的中文文档链接:
https://docs.djangoproject.com/zh-hans/3.0/faq/

Django版本和Python版本

使用Django前首先要安装Python。下面的表格介绍了各个Django版本所支持的Python版本:
在这里插入图片描述
这个表格在官方文档里可以找到

Django开发原则

快速开发和DRY原则

Do not repeat yourself.不要自己去重复一些工作

4. 创建Django项目

先在虚拟环境中安装好Django:
在这里插入图片描述

4.1用命令行的方式

创建项目:打开终端,使用命令:

django-admin startproject [项目名称] 

如下所示:
在这里插入图片描述
出现下一行时则表示创建成功,ls查看一下:
在这里插入图片描述
用pycharm打开该文件夹:
在这里插入图片描述
看到这几个文件后,说明项目已成功创建!

4.2用pycharm的方式

如果pycharm是专业版的话,可以用pycharm安装Django
在这里插入图片描述

5. 运行Django项目

5.1通过命令行的方式

进入虚拟环境,输入如下命令:

python manage.py runserver

如下图所示:
在这里插入图片描述
打开上面的地址:
在这里插入图片描述
这是Django的默认界面,与版本无关

默认端口号是8000,如果想要修改端口号,那么在运行的时候可以指定端口号:

python manage.py runserver 9000

5.2通过pycharm运行Django项目

打开manage.py文件:
在这里插入图片描述
直接右键运行是不行的:
在这里插入图片描述
要让项目跑起来,需要在edit configurations中设置:
在这里插入图片描述
打开它,在第二行加上runserver:
在这里插入图片描述
这时候再来运行:
在这里插入图片描述
这样项目就能跑起来了,也能访问这个界面:
在这里插入图片描述
在runserver后跟上端口即可修改端口

6. Django项目结构

在这里插入图片描述

  • manage.py:以后和项目交互基本上都是基于这个文件。一般都是在终端输入python manage.py [子命令]。可以输入python manage.py help看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件

  • settings.py:本项目的设置项,以后所有和项目相关的配置都是放在这个里面。

  • urls.py:这个文件是用来配置URL路由的。比如访问http://127.0.0.1/news/是访问新闻列表页,这些东西就需要在这个文件中完成。

  • wsgi.py:项目与WSGI协议兼容的web服务器入口,部署的时候需要用到的,一般情况下也是不需要修改的

project和app的关系

app是django项目的组成部分

一个app代表项目中的一个模块,所有URL请求的响应都是由app来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在django的角度来看,图书,电影这些模块就是app,图书,电影这些app共同组成豆瓣这个项目。

因此这里要有如下概念:

  • django项目由许多app组成
  • 一个app可以被用到其他项目
  • django也能拥有不同的app。

app的创建与使用

创建app
python manage.py startapp [app名称]   

也是没有提示:
在这里插入图片描述

app中的文件
  • init.py 说明目录是一个Python模块
  • models.py 写和数据库相关的内容
  • views.py 接收请求,处理数据 与M和T进行交互
  • tests.py 写测试代码的文件(暂时不需要关心)
  • admin.py 网站后台管理相关的
应用注册

建立应用和项目之间的联系,需要对应用进行注册。

修改settings.py中的INSTALLED_APPS配置项。

Django初体验

将下面这段代码加入urls.py文件中:

from django.http import HttpResponse


def index(request):
    return HttpResponse("首页")

def book(request):
    return HttpResponse("图书首页")

def move(request):
    return HttpResponse("电影首页")

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',index),
    path("book",book),
    path("move",move)
]

运行manage.py文件并打开网址:
在这里插入图片描述
图书首页:
在这里插入图片描述
电影首页:
在这里插入图片描述

7. DEBUG模式

在settings.py文件里可以打开或关闭DEBUG模式:
在这里插入图片描述

  • 开启了debug模式,那么修改代码,然后按下ctrl+s,那么Django会自动重启项目
  • Django项目中代码出现了问题,在浏览器中和控制台中会打印错误信息
  • 如果项目上线了,关闭debug模式,不然有很大的安全隐患
  • 关闭DEBUG模式,在setting文件中,将DEBUG = False

猜你喜欢

转载自blog.csdn.net/zbp_12138/article/details/105962054