Django安装和web框架原理
Django安装和web框架原理
在PyCharm中安装
- 在cmd中输入
- django-admin startproject 项目名
- 如果报错 不是内部或外部命令,也不是可运行的程序
- 需要添加环境变量
- 运行Django项目
- 切换到项目名目录下
- python manage.py runserver 或者 python manage.py runserver 127.0.0.1:8080 或者 python manage.py runserver 8090
- django-admin startproject 项目名
- 在PyCharm中新建
- File----》Now Project---->Django---->路径
- 
- 运行方式
- File----》Now Project---->Django---->路径
在一个新的虚拟环境中安装
virtualenvwrapper安装与使用
windows下安装
1、pip install virtualenvwrapper-win注:linux下运行 pip install virtualwrapper
2、创建虚拟环境---mkvirtualenv 环境名
3、列出所有的虚拟环境---lsvirtualenv|workon
4、退出虚拟环境---deactivate
5、删除虚拟环境---rmvirtualenv 环境名
6、进入虚拟环境---workon 环境名
7、跳转到虚拟环境所在的目录---cdvirtualenv
8、查看所有安装包---lssitepackages
9、修改mkvirtualenv的默认路径
创建的虚拟环境默认是在---c:\user\用户名\envs\
可以在系统变量中设值WORKON_HOME f:\envs
以后创建的虚拟环境都会在你自己设置的目录下
10、创建虚拟环境时指定python版本
mkvirtualenv --python=C:\Program Files\Python36\python.exe 环境名
11、安装diango---pip install diango
12、创建项目 django-admin startproject 项目名
13、启动项目 python manage.py runserver
14、创建app python manage.py startapp app名称
web框架原理
http协议
即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
HTTP是客户终端(用户)和服务端(网站)请求和应答的标准(tcp协议)
http协议工作原理:
- 客户端连接到Web服务器
- 发送http请求
- 服务器接受请求并返回http响应
- 释放连接tcp连接
- 客户端浏览器解析html内容
例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:
- 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
- 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
- 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
- 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
- 释放 TCP连接;
- 浏览器将该 html 文本并显示内容;
http请求方法
- get 向指定的资源发出“显示”请求
- head 与GET方法一样,都是向服务器发出指定资源的请求
- post 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)
- put 向指定资源位置上传其最新内容。
- delete 请求服务器删除Request-URI所标识的资源
- trace 回显服务器收到的请求,主要用于测试或诊断。
- options 这个方法可使服务器传回该资源所支持的所有HTTP请求方法。
- connect HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
常见错误警告
- 1xx消息——请求已被服务器接收,继续处理
- 2xx成功——请求已成功被服务器接收、理解、并接受
- 3xx重定向——需要后续操作才能完成这一请求
- 4xx请求错误——请求含有词法错误或者无法被执行
- 5xx服务器错误——服务器在处理某个正确请求时发生错误
http请求格式(request)
请求行
GET /home/ HTTP/1.1
请求头
Content-Type: text/html; charset=utf-8
空行
\r\n\r\n
请求数据(可有可无)
http响应格式(response)
- 响应行
- HTTP/1.1 200 OK
- 响应头(给浏览器看的那些信息)
- 空行
- 响应数据(真正显示在浏览器上显示给用户看)
html文件实例
"""
根据URL中不同的路径返回不同的内容--函数进阶版
返回独立的HTML页面
""" import socket
sk = socket.socket()
sk.bind(("127.0.0.1", 8080)) # 绑定IP和端口
sk.listen() # 监听 # 将返回不同的内容部分封装成函数
def index(url):
# 读取index.html页面的内容
with open("index.html", "r", encoding="utf8") as f:
s = f.read()
# 返回字节数据
return bytes(s, encoding="utf8") def home(url):
with open("home.html", "r", encoding="utf8") as f:
s = f.read()
return bytes(s, encoding="utf8") # 定义一个url和实际要执行的函数的对应关系
list1 = [
("/index/", index),
("/home/", home),
] while 1:
# 等待连接
conn, add = sk.accept()
data = conn.recv(8096) # 接收客户端发来的消息
# 从data中取到路径
data = str(data, encoding="utf8") # 把收到的字节类型的数据转换成字符串
# 按\r\n分割
data1 = data.split("\r\n")[0]
url = data1.split()[1] # url是我们从浏览器发过来的消息中分离出的访问路径
conn.send(b'HTTP/1.1 200 OK\r\n\r\n') # 因为要遵循HTTP协议,所以回复的消息也要加状态行
# 根据不同的路径返回不同内容
func = None # 定义一个保存将要执行的函数名的变量
for i in list1:
if i[0] == url:
func = i[1]
break
if func:
response = func(url)
else:
response = b"404 not found!" # 返回具体的响应消息
conn.send(response)
conn.close()
Django安装和web框架原理的更多相关文章
- Django之web框架原理
Web框架原理 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 先写一个 原始的web框架 imp ...
- django基础(web框架,http协议,django安装)
学习Django之前我们先来看什么是OSI七层模型: 应用层 表示层 应用层(五层模型中把这三层合成一个应用层) http协议 会话层 传输层 提供端口对 ...
- python Django 学习笔记(一)—— Django安装
注:本人python版本2.7.5 ,win7系统 安装Django https://www.djangoproject.com/download/ 官方下载Django-1.5.5.tar.gz 1 ...
- Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置
近期做那个python的开发,今天就来简单的写一下开发路线的安装及配置, 开发路线 Python3.6.1+Pycharm5.0.6+Django1.11+MySQL5.7.18 1-安装Python ...
- Django安装与开发虚拟环境搭建01
Django是一款基于python的MVT的web开发框架(m表示model,主要用于对数据库层的封装 ,v表示view,用于向用户展示结果,c表示controller,是核心,用于处理请求.获取数 ...
- (转载)Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置
近期做那个python的开发,今天就来简单的写一下开发路线的安装及配置, 开发路线 Python3.6.1+Pycharm5.0.6+Django1.11+MySQL5.7.18 1-安装Python ...
- Django学习笔记(http协议与django安装)
Django入门 HTTP协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器 ...
- Django 安装配置
1-安装Python3.6.1 Python2.x 与3.x的版本在语法上稍有不同,区别在于输出语句的不同,这个可以看相关的文档. Python3.6.1,可以在Python的官网上下载:https: ...
- django安装与使用
django安装与使用 --更新中 安装 我这里采用pip安装 pip install django 创建django工程 创建好的工程,会在当前目录.下 django-admin startproj ...
随机推荐
- LPL Ban/Pick 选人阶段的遮罩效果是如何实现的?
最近 S11 LPL 春季赛开赛,在看比赛的过程中,我发现新赛季的 Ban/Pick 选人阶段,出现了一种新的,有意思的遮罩效果,如下图所示: 当然,它是一个动态的效果,当选人的过程中,会有一种呼吸的 ...
- HTML笔记整理--下节
欢迎来到HTML基础笔记下节部分! 内联样式 当特殊的样式需要应用到个别元素时,就可以使用内联样式. 使用内联样式的方法是在相关的标签中使用样式属性.样式属性可以包含任何 CSS 属性.以下实例显示出 ...
- 6、架构--Nginx虚拟主机(基于多ip、端口、域名方式)、日志配置、Nginx模块(访问控制模块、状态监控模块、访问链接控制模块)
笔记 1.晨考 2.昨日问题 3.今日内容 1.Nginx虚拟主机 - 基于多IP的方式 - 基于多端口的方式 - 基于多域名的方式 2.日志配置 Nginx有非常灵活的日志记录模式,每个级别的配置可 ...
- Solution Set - 神奇 NOIP 模拟赛
\[\mathfrak{\text{Defining }\LaTeX\text{ macros...}}\newcommand{\vct}[1]{\boldsymbol{#1}}\newcommand ...
- zabbix监控多个nginx vhost网站状态码
需求 假设一台服务器运行了N个vhost网站,如何确定在大流量并发时候找到是哪个网站的问题呢? 这似乎是每个运维都会遇到的问题,方法有很多比如:1.看nginx日志大小确定访问量.2.通过前端代理确定 ...
- 快速上手 vue3
当前为vue3的基础知识点,为总结b站某视频的知识文章,在刚开始学习时自我保存在语雀,现在分享到博客. 目前找不到原视频文章地址了!!!要有兄弟看到原文地址:欢迎在下面评论! Vue3新的特性 Com ...
- Typora的使用教程.md
Typora的使用教程 原创:https://home.cnblogs.com/u/cn-zhouchao 2021.12.13 一.软件的介绍 Typora 是一款由 Abner Lee 开发的轻量 ...
- Qunar风控安全产品的探索之路
李建威.2017年7月以春招实习生的身份加入去哪儿网,毕业后一直在从事抓取与反抓取相关工作,先后负责搭建过智能打码.设备指纹以及环境检测等服务.目前主要负责反爬风控的基础安全产品建设.对各类作弊原理感 ...
- [题解]Mail.Ru Cup 2018 Round 1 - D. Changing Array
[题目] D. Changing Array [描述] 给n个整数a[1],...,a[n],满足0<=a[i]<=2^k-1.Vanya可以对这n个数中任一多个数进行操作,即将x变为x' ...
- 智能脚本工具(Smart scripts)测试应用
如果你是一位网络测试人员,您的工作中是否有出现过以下困扰呢? · 重复机械式的测试有时让你觉得工作是如此的枯燥乏味!· 只增不减的测试用例让你下班越来越晚!· 请求老板招人,人却永远不够用! 但值得庆 ...