Django学习 之 Django安装与一个简单的实例认识
一.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安装与一个简单的实例认识的更多相关文章
- python Django 学习笔记(二)—— 一个简单的网页
1,创建一个django项目 使用django-admin.py startproject MyDjangoSite 参考这里 2,建立视图 from django.http import HttpR ...
- Django入门第一步:构建一个简单的Django项目
Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...
- Django学习之django自带的contentType表 GenericRelation GenericForeignKey
Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...
- day 94 Django学习之django自带的contentType表
Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...
- day 93 Django学习之django自带的contentType表
Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...
- Django学习之django自带的contentType表
Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/aar ...
- day 91 Django学习之django自带的contentType表
Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net ...
- 《转》Robot Framework 的安装配置和简单的实例介绍
Robot Framework 介绍 Robot Framework 是一款基于 Python 的功能自动化测试框架.它具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进 ...
- C语言入门教程: 一个简单的实例
对于学习要保持敬畏! 语言不只是一种工具,还是一种资源,因此,善待它,掌握它! 我们知道,对于未知通常都会充满好奇和畏惧,既想了解它,又害怕神秘面纱隐藏的不确定性.对于一门编程语言同样如此,我将以 ...
随机推荐
- PAT 1010 Radix (二分)
Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...
- JAVA基础学习(7)之函数
7函数 7.1函数定义与调用 7.1.1函数定义 7.1.2函数调用 package com.study.main; public class ObjectStudy { public static ...
- SpringBoot+mongoDB实现id自增
这段时间给朋友做了一个微信小程序,顺便练习一下spring boot,虽然项目使用的是JPA+MySQL,但是好奇尝试了一下MongoDB实现自增ID,虽然MongoDB很少有自增ID的需求(在分布式 ...
- mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
mysql的引擎常用的有两个,一个MyISAM,另一个是InnoDB,mysql默认的为MyISAM,而InnoDB才是支持事务的.所以一般需要修改下,如何修改就不说了. 事务需要依赖数据库,好久没使 ...
- 总结String类的常用方法
总结String类的常用方法 1. 获取字符串长度 public int length() 2. 获取字符串某一位置的字符 public char charAt(int index) 注意:字符串中第 ...
- 支付接口API
//微信支付SDK https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1
- cnpm - 解决 " cnpm : 无法加载文件 C:\Users\93457\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息 。。。 "
1.在win10 系统中搜索框 输入 Windos PowerShell选择 管理员身份运行 2,打开了powershell命令行之后,输入 set-ExecutionPolicy RemoteSig ...
- IE浏览器清浮动
.cfx:after,.cfx:before{content:" ";display:table;}.cfx:after{clear:both;}.cfx{*zoom:1;} 今天 ...
- 探讨 Git 代码托管平台的若干问题
关于 Git 版本控制软件种类繁多,维基百科收录的最早的版本控制系统是 1972 年贝尔实验室开发的 Source Code Control System.1986 年 Concurrent Vers ...
- 基于scikitlearn的深度学习环境安装(三)(完整版)
OS Linux Ubuntu14.04 安装 pip (python2.7.9或以上自带pip) sudo apt-get install python-pip pip是python环境下安装包的 ...