Django框架的安装和使用
时间:2019-10-20
本文章向大家介绍Django框架的安装和使用,主要包括Django框架的安装和使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Django框架的安装和使用
在使用Django框架开发web应用程序时,开发阶段依赖wsgiref模块来实现Server的功能,我们使用Django框架是为了快速的开发application
一、安装
目前在企业开发中Django框架使用的主流版本为1.11.x版本,最新版本为2.x,我们主要讲解1.11版本,同时会涉及2.x的新特性
pip3 install django==1.11.18 #在命令行执行该命令
二、使用
2.1快速创建并启动Django项目
如果使用的是我们自定义的框架来开发web应用,需要事先生成框架包含的一系列基础文件,然后在此基础上进行开发。
如果使用的是Django框架来开发web应用,同样需要事先生成Django框架包含的一系列基础文件,然后在此基础上进行开发。
但Django框架更为方便的地方在于它已经为我们提供了一系列命令来帮我们快速的生成这一系列基础文件。
# 在命令执行以下指令,会在当前目录生成一个名为mysite的文件夹,该文件夹中包含Django框架的一系列基础文件
djagno-amdin startproject mysite
创建功能模块
cd mysite # 切换到mysite目录下,执行以下命令
python manage.py startapp app01 # 创建功能模块app01,此处的startapp代表创建application下的一个功能模块,例如我们要开发application是京东商城,京东商城这个项目下有一个订单管理模块,我们可以将其命名为app01
运行
python manage.py runserver 8001 # 在浏览器输入:http://127.0.0.1:8001 会看到Django的欢迎页面
2.2Django项目目录结构
2.3基于pycharm创建Django项目
2.4基于Django实现的一个简单示例
1.url.py
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# r'^index/$' 会正则匹配url地址的路径部分
url(r'^index/$', views.index) # 新增地址http://127.0.0.1:8001/index与index函数的映射关系
]
2.视图(views)
from django.shortcuts import render
# Create your views here.
# 必须定义一个request形参,request相当于我们自定义框架时的environ 参数
def index(request):
import datetime
now = datetime.datetime.now()
ctime = now.strftime("%Y-%m-%d %X")
return render(request, 'index.html', {"ctime": ctime}) # 人的人会读取templates目录下的index.html文件的内容斌且用字典中的ctime的值替换模板中的{{ ctime }}
3.模板
在templates目录下新建文件index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ ctime }}</h1>
</body>
</html>
测试
python manage.py runserver 8001 # 在浏览器输入 http://127.0.0.1:8001/index 会看到当前时间
2.5Django框架的分层与请求生命周期
综上,我们使用Django框架就是为了开发application,而application的工程本质就是根据不同的请求返回不同的数据,Django框架是这个工作过程细分为如下四层去实现
- 路由层(根据有不同的地址执行不同的视图函数,详见urls.py)
- 视图层(定义处理业务逻辑的视图层函数,详见views.py)
- 模型层(跟数据库打交道的,详见models.py)
- 模板层(待返回给浏览器的HTML文件,详见templates)
Django请求生命周期
原文地址:https://www.cnblogs.com/Lin2396/p/11708339.html
- 【 关关的刷题日记49】 Leetcode 434. Number of Segments in a String
- 自然语言处理构建文本向量空间1.百科2.源代码3.参考:
- 小爬虫之爬取豆瓣电影排行榜1.技术路线2.任务3.分析4.运行结果5.源码
- Numpy 修炼之道 (5)—— 索引和切片
- 深入理解final关键字
- Numpy 修炼之道 (4)—— 基本运算操作
- 一些APT攻击案例分享
- 浅谈命令查询职责分离(CQRS)模式
- Numpy 修炼之道 (3)—— 数据类型
- 熔断器设计模式
- 树链剖分详解
- 洛谷P3379 【模板】最近公共祖先(LCA)(树链剖分)
- 学习使用Jieba1.Jieba2. 特点3.功能4.安装5.使用6.其他中文分词工具
- 如何使用sklearn加载和下载机器学习数据集
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Upload-labs通关笔记(二)
- Upload-labs通关笔记(三)
- Upload-labs通关笔记(四)
- Git使用总结
- Sqlilabs通关笔记(一)
- nodejs可读流源码分析
- Sqlilabs通关笔记(二)
- Sqlilabs通关笔记(四)
- Sqlilabs通关笔记(五)
- 如何证明sleep不释放锁,而wait释放锁?
- 如何将SAP Document Builder的word控件设置成只读模式
- 在SAP CRM WebClient UI里打开ABAP Webdynpro页面
- SAP CRM WebClient UI和ABAP Webdynpro页面的互相跳转
- 通过 Apache Ant 来运行 Tomcat
- 你要的干货!信息收集之绕过CDN获取真实网站IP方法总结