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
    • 在PyCharm中新建
      • File----》Now Project---->Django---->路径

        • ![img](file:///C:\Users\12445\Documents\Tencent Files\1244506782\Image\Group\UXP%UW0454%F~}M1EKT1@1L.png)
      • 运行方式
  • 在一个新的虚拟环境中安装

    • 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 ![img](file:///C:\Users\12445\AppData\Local\Temp%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py runserver

        14、创建app python ![img](file:///C:\Users\12445\AppData\Local\Temp%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py startapp app名称

  • web框架原理

    • http协议
      • 即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

      • HTTP是客户终端(用户)和服务端(网站)请求和应答的标准(tcp协议)

      • http协议工作原理:

        1. 客户端连接到Web服务器
        2. 发送http请求
        3. 服务器接受请求并返回http响应
        4. 释放连接tcp连接
        5. 客户端浏览器解析html内容
      • 例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:

        1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
        2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
        3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
        4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
        5. 释放 TCP连接;
        6. 浏览器将该 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框架原理的更多相关文章

  1. Django之web框架原理

    Web框架原理 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 先写一个 原始的web框架 imp ...

  2. django基础(web框架,http协议,django安装)

    学习Django之前我们先来看什么是OSI七层模型: 应用层 表示层       应用层(五层模型中把这三层合成一个应用层) http协议 会话层 传输层                  提供端口对 ...

  3. python Django 学习笔记(一)—— Django安装

    注:本人python版本2.7.5 ,win7系统 安装Django https://www.djangoproject.com/download/ 官方下载Django-1.5.5.tar.gz 1 ...

  4. Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置

    近期做那个python的开发,今天就来简单的写一下开发路线的安装及配置, 开发路线 Python3.6.1+Pycharm5.0.6+Django1.11+MySQL5.7.18 1-安装Python ...

  5. Django安装与开发虚拟环境搭建01

    Django是一款基于python的MVT的web开发框架(m表示model,主要用于对数据库层的封装  ,v表示view,用于向用户展示结果,c表示controller,是核心,用于处理请求.获取数 ...

  6. (转载)Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置

    近期做那个python的开发,今天就来简单的写一下开发路线的安装及配置, 开发路线 Python3.6.1+Pycharm5.0.6+Django1.11+MySQL5.7.18 1-安装Python ...

  7. Django学习笔记(http协议与django安装)

    Django入门 HTTP协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器 ...

  8. Django 安装配置

    1-安装Python3.6.1 Python2.x 与3.x的版本在语法上稍有不同,区别在于输出语句的不同,这个可以看相关的文档. Python3.6.1,可以在Python的官网上下载:https: ...

  9. django安装与使用

    django安装与使用 --更新中 安装 我这里采用pip安装 pip install django 创建django工程 创建好的工程,会在当前目录.下 django-admin startproj ...

随机推荐

  1. Python接口自动化测试_悠悠

    https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695###  

  2. Java 给Word每一页设置不同文字水印效果

    Word中设置水印时,可预设的文字或自定义文字设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法.下面,将以Ja ...

  3. 从 MMU 看内存管理

    在计算机早期的时候,计算机是无法将大于内存大小的应用装入内存的,因为计算机读写应用数据是直接通过总线来对内存进行直接操作的,对于写操作来说,计算机会直接将地址写入内存:对于读操作来说,计算机会直接读取 ...

  4. windows gdi+ Bitmap 总结

    windows gdi+ 是对 windows gdi 的一个c++封装,同时增加了一些扩展功能,如反走样,样条曲线,变换矩阵,图像编解码等. gdi+ 相对于 gdi 也存在一些不足之处,如 执行效 ...

  5. Solution -「LOJ #150」挑战多项式 ||「模板」多项式全家桶

    \(\mathcal{Description}\)   Link.   给定 \(n\) 次多项式 \(F(x)\),在模 \(998244353\) 意义下求 \[G(x)\equiv\left\{ ...

  6. Dapp开发petshop——truffle官方例程

    truffle-pet-shop pet-shop是truffle的官方例程. 之前参考https://learnblockchain.cn/2018/01/12/first-dapp/的中文教程,但 ...

  7. [GAME] [Civilization] 文明6字体及字体大小修改

    一.前言 文明作为一款文本信息量较大的游戏,提供的字体和UI界面设置还是偏少了一些,对干眼用户极不友好 二.用户界面整体缩放 首先是游戏自带的缩放选项:图象选项-图像-UI质量提升,设置为150%或更 ...

  8. 前端人员不要只知道KFC,你应该了解 BFC、IFC、GFC 和 FFC

    前言 说起KFC,大家都知道是肯德基,但面试官问你什么是BFC.IFC.GFC和FFC的时候,你是否能够像回答KFC是肯德基时的迅速,又或者说后面这些你根本就没听说过,作为一名前端开发工程师,以上这些 ...

  9. Python+requests接口自动化完整项目框架整理笔记

    前言 通过学习"上海悠悠"博客,自己手动敲了一遍整体的自动化项目搭建,编写用例,打印log日志,生成测试报告,将报告发送至邮箱整体流程跑了一遍,勉强跑通了 一,项目结构 --cas ...

  10. 【战略】以色列公司的数据驱动tip

    Eric Rapps:我们的团队获得了大量的收入,并且持续保持着增长.如果获得我们的投资,实际上是你是获得了和相关领域技术积累.专家沟通的支持.但更重要的是,你可以近距离地接触我们的运营资源,您可以直 ...