一.Django简介

1、MVC与MTV模型

(1)MVC模型

Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:

(2)MTV模型

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

M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。

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

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

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

一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

二.Django下载与基本命令

1.Django下载

(1)命令行下载

pip3 install django      # 没有参数,默认下载最新版本

pip3 install django==1.11.x    # 指定Django的下载版本(现在一般是2.2.*版本)

如果pip3不行可以需要安装pip3或者使用pip

运行安装Django例

pip3 install django==2.2.3

查看Django安装版本:

python3 -m django --version

官网版本使用时间条:

Django 版本对应的 Python 版本:

(2)pycharm方式安装

步骤如下图所示:

2.创建第一个Django项目

(1)命令行创建

下面的命令创建了一个名为demo的Django 项目:

django-admin startproject demo   #demo为项目名

root@hsz:/home/hsz/djangodemo# django-admin startproject demo

root@hsz:/home/hsz/djangodemo# ls

demo

root@hsz:/home/hsz/djangodemo# tree demo

demo   #项目根目录

├── demo  #项目名称

│   ├── __init__.py

│   ├── settings.py  #项目配置相关

│   ├── urls.py     #url路径

│   └── wsgi.py  #wsgi

└── manage.py     #管理相关

1 directory, 5 files

root@hsz:/home/hsz/djangodemo#

(2)pycharm创建

对于linux先找下python3的安装目录,如果使用python2开发找到python,如下截图:

命令:which python3

进入pycharm-file ---> new project ---->选择Django ---> 配置路径和项目名称 ---> 配置环境(默认用系统环境)即在Existing interpreter 中找到环境目录导入  ----> 点击create(完成创建)

Location on选择项目创建的目录和项目名

项目目录详细介绍:

|---mydemo  # 项目的/目录

|---mydemo  # 项目目录

|---__init__.py

|---settings.py  # 配置文件

|---urls.py  # 路由系统 ===> url与视图的对应关系

|---wsgi.py  # runserver命令就使用wsgiref模块做简单的web server

|---manage.py  # 管理文件

3.在项目目录下创建应用

(1)创建app

python3 manage.py startapp app01    #app01为app名称

(2)注册app

在settings.py里的INSTALLED_APPS列表中,添加注册app。

在INSTALLED_APPS最后添加下面一句:

有两种方法:

a、INSTALLED_APPS = [..., "app01', ...]

b、INSTALLED_APPS = [..., "app01.apps.App01Config', ...]      # 推荐这种写法

(3)app目录结构

如下:

root@hsz:/home/hsz/djangodemo/demo# tree app01

app01             #app名称

├── admin.py   #Django自带admin相关

├── apps.py     #app相关

├── __init__.py

├── migrations   #数据模型迁移记录

│   └── __init__.py

├── models.py   #数据映射关系相关

├── tests.py

└── views.py    #业务逻辑视图相关

使用pycharm创建如下:

4.启动运行Django项目

(1)命令行运行

python manage.py runserver                # 127.0.0.1:8000

python manage.py runserver 80             # 127.0.0.1:80

python manage.py runserver 0.0.0.0:8888   # 0.0.0.0:8888#

注意:要在manage.py同级目录执行命令

(2)pycharm运行

三.基于Django实现的一个简单示例

1.url控制器

from django.contrib import admin

from django.urls import path

from app01 import views

urlpatterns = [

path('admin/', admin.site.urls),

path('timer/', views.timer),

]

2.视图函数

from django.shortcuts import render

# Create your views here.

#编写视图函数

def timer(request):

import datetime

now_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

return render(request, "timer.html", {"now_time": now_time})

3.模板文件(timer.html)

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>time</title>

</head>

<body>

<h3>当前时间为:{{ now_time }}</h3>

</body>

</html>

Django学习 之 Django安装与一个简单的实例认识的更多相关文章

  1. python Django 学习笔记(二)—— 一个简单的网页

    1,创建一个django项目 使用django-admin.py startproject MyDjangoSite 参考这里 2,建立视图 from django.http import HttpR ...

  2. Django入门第一步:构建一个简单的Django项目

    Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...

  3. Django学习之django自带的contentType表 GenericRelation GenericForeignKey

    Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...

  4. day 94 Django学习之django自带的contentType表

    Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...

  5. day 93 Django学习之django自带的contentType表

    Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...

  6. Django学习之django自带的contentType表

    Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/aar ...

  7. day 91 Django学习之django自带的contentType表

      Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net ...

  8. 《转》Robot Framework 的安装配置和简单的实例介绍

    Robot Framework 介绍 Robot Framework 是一款基于 Python 的功能自动化测试框架.它具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进 ...

  9. C语言入门教程: 一个简单的实例

    对于学习要保持敬畏! 语言不只是一种工具,还是一种资源,因此,善待它,掌握它!   我们知道,对于未知通常都会充满好奇和畏惧,既想了解它,又害怕神秘面纱隐藏的不确定性.对于一门编程语言同样如此,我将以 ...

随机推荐

  1. 7、源与值(Source/Values)

    学习目录:树莓派学习之路-GPIO Zero 官网地址:https://gpiozero.readthedocs.io/en/stable/source_values.html 环境:UbuntuMe ...

  2. Bug搬运工-CSCvf74866:Webauth scaling improvements - fix problem with GUI going unresponsive with HTTPS redirect

    Webauth scaling improvements - fix problem with GUI going unresponsive with HTTPS redirect CSCvf7486 ...

  3. 【MySQL】单表查询

    " 目录 where 约束 group by 分组查询 聚合函数 having 过滤 order by 查询排序 limit 限制查询的记录数 # 语法 select 字段1, 字段2 .. ...

  4. python调用scala或java包

    项目中用到python操作hdfs的问题,一般都是使用python的hdfs包,然而这个包初始化起来太麻烦,需要: from pyspark impport SparkConf, SparkConte ...

  5. 简单的单元测试unittest实例

    unittest是Python中自带的一个单元测试模块,常常用它来做单元测试,它里面封装了用例的初始化操作和执行,以及返回结果的校验等操作. 在学习unittest框架之前需要先了解几个知识点: Te ...

  6. 绕过QQ群文件下载限速

    绕过QQ群文件下载限速 引言 众所周知,用QQ客户端下载QQ群文件,速度往往被限为10KB/s.这里我们来讲讲如何绕过这一限制. 原始事件发生在2020年2月2日,值武汉疫情爆发,全国各省市纷纷下令推 ...

  7. PyQt5窗口操作大全

    1.多窗口交互-使用信号与槽函数'''如果一个窗口和一个窗口交互,尽量不要访问窗口B的控件:应该访问与信号绑定的槽函数,从而降低窗口之间的耦合度 例:如果A直接访问B窗口的控件,一旦B窗口的控件发生改 ...

  8. PyQt5的菜单栏、工具栏和状态栏

    1.创建菜单栏import sys, mathfrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore impor ...

  9. WinForm开发(3)——使用vs2017打包winform安装程序的过程

    一.安装打包插件 注:安装好重启vs2017 ​ ​ 二.打包过程 ​ ​ 添加文件入口 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​

  10. Kubernetes的pod控制器及ReplicaSet控制器类型的pod的定义

    为什么需要Pod Kubernetes项目之所以这么做的原因: 因为Kubernetes是谷歌公司基于Borg项目做出来的,谷歌工程师发现,他们部署的应用往往存在这进程与进程组的关系.具体说呢,就是这 ...