django的简单原理
一.自定义客户端和服务端的请求响应
1.客户端打开url,向服务器发出请求
2.服务端用socket写一个py,用于接收请求和做出响应
3.服务端接收请求
4.服务端模拟HTTP协议做出响应,状态行为 b"HTTP/1.1 200 ok\r\n\r\n响应正文"
import socket server = socket.socket()
server.bind(("127.0.0.1",8888))
server.listen() conn,addr = server.accept() from_meg = conn.recv(1024)
conn.send(b"HTTP/1.1 200 ok \r\n\r\n")
conn.send(b"hello")
一个简单的响应
二.wsgiref模块
wsgiref模块将整个请求信息给封装起来,把服务器端的请求数据进行整理.python库提供WSGI规范的服务器就是wsgiref模块
from wsgiref.simple_server import make_server def application(environ, start_response): # environ请求信息是个字典,start_response响应信息
# 给浏览器的状态行,响应头
start_response("200 ok", [("Conten-Type", "text/html"), ("k1", "v1")])
# print(environ) # 字典
path = environ["PATH_INFO"] # 请求路径信息
data = "页面错误".encode("gbk")
return [data] # 响应内容
httpd = make_server("1270.0.0.1",8001,application)
httpd.serve_forever()
wsgiref模块的模板
三.渲染模板jinja2
封装了手动替换进行渲染的方法
1.py文件中
template = Template(html) 把页面内容做参数,形成模板
data = template.render({"k":"v"}) k是html中需要替换的,v是py中给替换的内容
2.html中
{{ k }} 需要替换的
{% for i in lst %} 遍历列表,lst是要替换的
{% endfor %} 结束遍历
四.web框架本质
web框架就是socket服务端和浏览器的通讯
1.socket的服务端功能:
a.负责与浏览器收发消息
b.根据用户访问不同的路径执行不同的函数
c.从html读取内容,并完成字符串替换进行渲染
2.python中web框架
tornado框架,自带abc
django框架,自带bc,使用第三方wsgiref模块做的a
flask框架,自带b,使用第三方的ac
五.MVC和MTV框架
1. MVC
M:model 就是和数据库的关系映射
V:view 视图,(函数+html文件)
C:control 控制器,url分发和函数处理逻辑关系

2.MTV(django)
M:model模型:负责业务对象和数据库的关系映射
T:template模板:负责如何把页面展示给用户
V:view视图:负责业务逻辑,并在适当时候调用模型和模板
Django还需要一个url分发器,就是想不同url请求分发给view处理

六.django的简单使用
1.用命令行创建django项目
切换到要创建项目的目录
Django-admin startproject 项目名
2.启动项目
在有manage.py的目录下
python manage.py runserver 127.0.0.1:8001
3.创建项目应用
在有manage.py的目录下
python manage.py startapp 应用名
4.新建项目中的各个文件简单介绍
manage 可以调用django shell和数据库,启动关闭项目,和项目的交互
settings 项目的默认配置,包括数据库信息,调试标志以及一些工作变量
urls 负责url映射到应用程序
wsgi 封装着socket的相关内容
models 数据库相关,存放表结构
views 视图函数
django的简单原理的更多相关文章
- Django - Django框架 简单介绍
Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...
- java中异常处理机制的简单原理
以上是自认为的java异常处理的简单原理,如有不妥之处还请各位大神帮忙指点,谢谢!
- Python django实现简单的邮件系统发送邮件功能
Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...
- Django中简单添加HTML、css、js等文件(非正规添加,适合小白)
Django中简单添加HTML.css.js等文件 首先申明下自己的环境, python版本3.65(亲测3.7版本有毒,没解决掉!) Django版本1.11.15(版本比较成熟,也可以用最新的版本 ...
- java——关于异常处理机制的简单原理和应用
异常处理机制的简单原理和应用 一.Execption可以分为java标准定义的异常和程序员自定义异常2种 (1)一种是当程序违反了java语规则的时候,JAVA虚拟机就会将发生的错误表示为一个异常.这 ...
- 沉淀,再出发:Django的简单使用
沉淀,再出发:Django的简单使用 一.前言 在学习了python的基础语法之后,其实大家都很怀疑python的使用场景,其实python在很多场合都有很强的适应性,就比如说web开发之中使 ...
- javascript AJAX简单原理及什么是ajax
AJAX简单原理供初学者理解 AJAX的原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其 ...
- 基于Django进行简单的微信开发
代码地址如下:http://www.demodashi.com/demo/11756.html 一.微信公众号的准备: 1. 注册 访问地址:https://mp.weixin.qq.com/ 按照提 ...
- Python Django 实现简单注册功能
Python Django 实现简单注册功能 项目创建略,可参考前期文档介绍. 目录结构如下 编辑views.py from django.shortcuts import render # Crea ...
随机推荐
- 在WINDOWS7下无U盘安装WINDOWS10
第一步:下载cn_windows_10_business_editions_version_1803_updated_march_2018_x64_dvd_12063730.iso 第二步:解压里面的 ...
- struts2 default.xml详解
struts2 default.xml 内容 1 bean节点制定Struts在运行的时候创建的对象类型. 2 指定Struts-default 包 用户写的package(struts.xml) ...
- BASEDIR
1)正常写python程序会有一个可执行的bin.py文件,假如这个文件需要导入my_module里面定义的模块,应该怎么设置sys.path(此时可以直接导入), 因为bin和model属于同级目录 ...
- 【Noip模拟 20161005】运货
问题描述 小ww开了一家快递公司,在nn个城市之间进行货物运输工作,一共雇了mm个快递员. 每个快递员性格很奇特,第ii号快递员只愿意将货物从城市sisi运送到titi(甚至不愿意将货物 从titi运 ...
- 深入剖析GPU Early Z优化
最近在公司群里同事发了一个UE4关于Mask材质的优化,比如在场景中有大面积的草和树的时候,可以在很大程度上提高效率.这其中的原理就是利用了GPU的特性Early Z,但是它的做法跟我最开始的理解有些 ...
- The history of programming languages.(transshipment) + Personal understanding and prediction
To finish this week's homework that introduce the history of programming languages , I surf the inte ...
- Javascript面试题收集
第一部分“ 来源: http://bbs.miaov.com/forum.php?mod=viewthread&tid=6974 1.var a = b = 1; ——这样定义变量的隐患 fu ...
- mysql 表结构
1.登录数据库>mysql -u root -p 数据库名称 2.查询所有数据表>show tables; 3.查询表的字段信息>desc 表名称; 4.1添加表字段 alter t ...
- php 获取数组深度的值
匿名函数(闭包) $val = array(); array_walk_recursive($array, function ($x) use (&$val) { $val[] = $x; } ...
- linux下安装haproxy作为端口转发服务器,以及安装keepalived作为haproxy高可用方案
一.安装haproxy作为端口转发服务器(主服务器:172.28.5.4,备服务器:172.28.5.8,浮点IP为:172.28.5.6) 1.安装依赖包 yum -y install wget g ...