Django是一个高级Python Web框架,鼓励快速开发和简洁实用的设计。它由经验丰富的开发人员构建,可以解决大部分Web开发的麻烦,因此您可以专注于编写应用程序而无需重新造轮子。它是免费和开源的。

    使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

MVC 与 MTV模型

    MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

模型(M)- 编写程序应有的功能,负责业务对象与数据库的映射(ORM)。

视图(V)- 图形界面,负责与用户的交互(页面)。

控制器(C)- 负责转发请求,对请求进行处理。

    MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,MTV 分别是指:

    M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。

    T 表示模板 (Template):负责如何把页面(html)展示给用户。

    V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template。

    除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template。

安装Django

    最基础的方法,在cmd or powershell中输入 pip install django,如果同一个电脑有多个python版本共存需要注意安装位置,同时还需要注意python版本要和Django版本对应。

        另外python3.7不推荐使用Django3.0,在遇到种种问题之后,我退而求其次选择了Django2.2。

    有一种安装方法更加简单,直接用PyCharm的Package管理安装即可,PyCharm的Package管理还可以用窗口化的方式安装,升级,降级,卸载python库,同时还支持创建只属于改项目的一个虚拟环境,做到多个python库版本的共存,可以说是相当可以了,以后也可能会写篇PyCharm的使用笔记

    安装完成后在python中输入import django,如果没有报错安装就成功了。

    

创建Django项目

    同样,最基础的方法,在CMD中cd到你想创建项目的目录,然后在CMD中输入 django-admin startproject mysite 

    项目mysite建立完成。

    在PyCharm中可以直接新建项目,同时还可以对环境进行配置。

        创建完成后会得到这么一个目录,由于Django的特性,每一个容器(此时的mysite目录)中的各个项目(此时mysite目录中的mysite目录)都可以被看做是一个独立的纯 Python 包,它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如mysite.urls)

    在这个目录下的各个文件的作用是:

manage.py: 一个让你用各种方式管理 Django 项目的命令行工具

__init__.py: 一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包

asgi.py:用于异步Web服务器和应用程序

settings.py: Django 项目的配置文件

urls.py: Django 项目的 URL 声明,就像网站的“目录”

wsgi.py: 作为你的项目的运行在 WSGI 兼容的Web服务器上的入口

打开Django服务器

    终端中输入 py manage.py runserver,注意要在容器中开启(最外层的包含manager.py的文件夹)。

    PyCharm中直接点右上角的三角键运行。

    运行成功后打开127.0.0.1:8000,成功链接并且出现火箭图标即为成功。

之前用3.0配置成功的图

    如果不成功有可能是在此之前有启动过其他服务器,如apache、tomcat,记得关闭。还是不行则可以换Django端口。

    在CMD中输入 py manage.py runserver 8080 (其中8080是要更改的端口号)。

创建应用

    首先是应用和项目的定义。应用是一个专门做某件事的网络应用程序。项目则是一个网站使用的配置和应用的集合。两者之间是包含和被包含的关系。

    在Django的初始设计中应用是可以直接在之前的mysite中直接作为子模块设计调用的,如果在容器中创建应用,它就可以作为顶级模块导入。

    在容器(最外层mysite文件夹)的CMD中输入 py manage.py startapp polls 后就新建了名为polls的应用。


    此时访问网站是无法直接连接到polls应用中的,因此需要在polls下新建一个urls.py文件,同时要把mysite/urls.py 中添加指定我们创建的 polls.urls 模块。在polls.url中添加view中即将建立的视图。

polls/urls.py

from django.urls import path
from . import views

app_name = 'polls'
urlpatterns = [
   path('', views.index, name='index'),
   path('<int:question_id>/', views.detail, name='detail'),
   path('<int:question_id>/results/', views.results, name='results'),
   path('<int:question_id>/vote/', views.vote, name='vote'),
]

    同时还需要在 mysite/urls.py 文件的 urlpatterns 列表里插入一个 include()把关于polls的访问指向应用。

mysite/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
   path('polls/', include('polls.urls')),
   path('admin/', admin.site.urls),
]

    记得在插入之后保留一个, 不论是否在最后一个,防止下次遗忘。

    函数 path() 具有四个参数,两个必须参数:route 和 view,两个可选参数:kwargs 和 name。

    route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。

    当 Django 找到了一个匹配的准则,就会调用view函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。

    name 会为你的 URL 取名能使你在 Django 的任意地方唯一地引用它。

    此时如果你在view函数中定义一个index,index中返回一句话,你就可以访问127.0.0.1:8000/polls/并且看到了

polls\urls

from django.urls import reverse

def index(request):

    return HttpResponse("Hello, world.you are at the polls index.")


    先到这里吧,还停的挺突然的。分着来吧,打字好累,上课讲的就很模糊,自己在官网找了点资料消化了一下,明白了个大概,但可能还是说不清楚,文字表达能力退化的厉害。

    参考文档:

Django 简介:https://www.runoob.com/django/django-intro.html

编写你的第一个 Django 应用:https://docs.djangoproject.com/zh-hans/2.2/intro/tutorial01/