Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)

1、虚拟环境搭建

创建新的Django框架的虚拟环境:

注意:如果没有pipenv指令,需要安装这个支持库,同时需要记住配置它的环境变量,否则虚拟环境会安装在默认文件夹下(一般是C:\Users\Administrator.virtualenvs)

# Windows安装pipenv

pip install pipenv

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

Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第1张图片
Window系统安装Django 2.2(注意要在虚拟环境下)

# Window系统安装Django 2.2

Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第2张图片
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第3张图片
pycharm设置python解释器
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第4张图片

2、MVC思想与Django的MVT区别

Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第5张图片
在Django框架中,将Controller改换成Templates模板,就成了MVT,但是在Django中的View视图负责的功能就是MVC思想中Controller的功能。
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第6张图片

3、Django项目的创建

1. 命令行创建

推荐使用命令行创建项目的方法

# 进入虚拟环境,xxx是自己创建的虚拟环境文件夹
cd /d xxx
pipenv shell

# 查看虚拟环境python的版本,需要是3.6的
python

# 创建项目:打开终端,使用命令:
django-admin startproject [项目名称] 

比如:django-admin startproject first_project。

注意:项目名称注意尽量不要有中文,项目路径也尽量不要有。
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第7张图片

2. Pycharm专业版创建Django

需要使用Pycharm Professional版本的,社区版本无法创建。

Pycharm专业版本激活方法参考:https://shimo.im/docs/DJ3h3tJv98ppTYyH/read
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第8张图片

4、运行Django项目

1. 命令行运行项目

# 启动Django项目
python manage.py runserver

# 如果想要在项目启动的时候指定端口,可以执行
python manage.py runserver 8888
# 此时就可以使用http://127.0.0.1:8888/ 端口进行访问Django

Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第9张图片
上图中有红色部分提醒信息是因为有些Django默认的信息我们还没更改,比如admin, auth, contenttypes, sessions.
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第10张图片
运行成功显示界面效果:Django默认开启Debug模式,此时版本为2.2.

Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第11张图片
且Django默认自带后台
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第12张图片

2. Pycharm启动项目

1.选择Edit Configurations选择项
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第13张图片
2.添加 runserver 参数
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第14张图片
3.在manage.py文件中右键选择Run manage,项目启动成功如下:
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第15张图片

5、项目结构介绍

以下是Django项目固定的设置,不同于Flask框架。

  • manage.py:和项目交互基本上都是基于这个文件。一般都是在终端输入python manage.py [子命令]
    可以输入python manage.py help看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件。
  • settings.py:本项目的设置项,以后所有和项目相关的配置都是放在这个里面。Flask框架中是人为定义的config.py文件。
  • urls.py:这个文件是用来配置URL路由的。比如访问http://127.0.0.1/news/是访问新闻列表页,这些东西就需要在这个文件中完成。Flask框架中是通过route的装饰器去配置路由,或者类视图绑定路由。
  • wsgi.py:项目与WSGI协议兼容的web服务器入口,服务器部署的时候需要用到的,一般情况下也是不需要修改的。

1. project和app的关系

app是django项目的组成部分。一个app代表项目中的一个模块,所有URL请求的响应都是由app来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在django的角度来看,图书,电影这些模块就是app,图书,电影这些app共同组成豆瓣这个项目。因此这里要有一个概念: django项目由许多app组成,一个app可以被用到其他项目,django也能拥有不同的app
项目要求:高内聚低耦合,两个独立模块的联系越少越好。

2. 创建app

python manage.py startapp [app名称]

Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第16张图片
app中的文件

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

应用注册
建立应用和项目之间的联系,需要对应用进行注册。
修改 settings.py中的INSTALLED_APPS配置项

测试代码:
utls.py文件定义和绑定不同的路由,这种方法和路由都在一起,后期会造成项目的代码文件臃肿。

from django.contrib import admin
from django.urls import path
from django.http import HttpResponse


# django框架中写视图函数,必须要传参request
def index(request):
    return HttpResponse("hello world")       # 返回值必须是 HttpResponse包裹住的类型


# django框架中写视图函数,必须要传参request
def book(request):
    return HttpResponse("图书首页")           # 返回值必须是 HttpResponse包裹住的类型


urlpatterns = [
    path('admin/', admin.site.urls),         # django默认路由前面有/,不需要添加
    path('', index),                         # 路由为/,绑定的方法是index,此时不能加()
    path('book/', book),                     # 路由为book/,绑定的方法是book

]

3. 项目中真正的定义和绑定路由的方式

book/views.py 文件中定义路由的方法

from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse


# django框架中写视图函数,必须要传参request
def book(request):
    return HttpResponse("图书首页")           # 返回值必须是 HttpResponse包裹住的类型


# django框架中写视图函数,必须要传参request
def index(request):
    return HttpResponse("hello world")       # 返回值必须是 HttpResponse包裹住的类型



utls.py文件绑定不同的路由

from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
from book.views import book             # 从其他app模块中导入定义的路由方法
from book.views import index


urlpatterns = [
    path('admin/', admin.site.urls),         # django默认路由前面有/,不需要添加
    path('', index),                         # 路由为/,绑定的方法是book模块中views.py的index方法
    path('book/', book),                     # 路由为book/,绑定的方法是book模块中views.py的index方法

]

4. DEBUG模式

• 开启了debug模式,那么修改代码,然后按下ctrl+s,那么Django会自动重启项目
• Django项目中代码出现了问题,在浏览器中和控制台中会打印错误信息
• 如果项目上线了,关闭debug模式,不然有很大的安全隐患,因为项目错误信息会显示在页面上,不安全
• 关闭DEBUG模式,在setting文件中,将DEBUG = False
Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)_第17张图片

你可能感兴趣的:(Django框架的学习)