web应用程序 本质 socket服务端 浏览器本质是一个socket客户端

1. 服务器程序 socket请求 接受HTTP请求,发送HTTP响应。
比较底层,繁琐,有专用的服务器软件,如:Apache Nginx

2. 应用程序,实现具体逻辑

WSGI:应用程序和服务器程序之间的标准

符合WSGI:
需要开发者实现一个响应
environ:包含了所有HTTP请求信息的dict对象
start_response:一个发送HTTP响应的函数

简单的符合WSGI的样式code

 def app(environ, strat_response):
  strat_response('200 OK',[('Content-Type','text/html')])
  return[b'<h1>Hello world</h1>']

web 应用框架的设计模式 MTY MVC

MTV:

M:models,模型:负责业务数据对象与数据库对象

T:templates,模板:负责如何把数据展示给用户

V:views,视图:负责业务逻辑

MVC:

M:models,模型:负责业务数据对象与数据库对象

V:views,视图:负责与用户交互的页面

C: 控制器:负责接收用户的输入调用模型与视图

**都是为了解耦**

Django工作准备

1、环境准备:
  - Ubuntu
  - python 3.5 +
  - pycharm 2017.1.5 +
  - MySQL

2、python虚拟环境的重要性
  - 什么是python虚拟环境
    通过工具,将系统上的python复制了一份

- 为什么要用虚拟
    1.不会污染系统环境
    2.不同的项目环境的隔离

 - 创建虚拟环境

  linux-code:
  提供的Ubuntu设置好了,默认会创建在根目录下的virtualenvs目录下
  whereis <appname> 查看软件安装的路径

  1.查看当前有哪些虚拟环境: workon

  2.创建虚拟环境: mkvirtualenv -p /usr/bin/python3(path) envname

  3.进入虚拟环境: workon envname

  4.退出虚拟环境: deactivate

  5.删除虚拟环境: rmvirtualenv envname

3、Django安装
  pip install django

4、简单操作
  1.创建项目
    django-admin startproject <project name>
    查看 crm文件(可能需要安装): tree
    项目根目录:manage.py

  项目内文件的作用:
    manage:Django的命令行工具
    settings:项目的配置文件。
    urls:路由申明
    wsgi:接口

  2.启动项目:
    项目的根目录下运行
    python manage.py runserver 0.0.0.0:8000
    如果访问不了,需要再settings内配置:
    ALLOWEN_HOSTS = ['*'],代表允许的域名

    此时可以在网页上打开127.0.0.1::8000,会出现Django的界面,说明配置成功

5.manage管理项目

  创建应用,在根目录下创建应用
    python manage.py startapp teacher(应用名称)

code区域

新建views.py文件,并写上第视图函数

 from django.http import HttpResponse

   视图函数
  def index(request):
  return HttpResponse('hello,这是我的第一个django项目!!')

在urls.py内操作

导入视图,添加一条路由

 from . import views

 urlpaterns = [
  path('index/', views.index)
  #index后需要加上/,后面参数对应的views内的函数
]

现在可以在浏览器打开对应的地址,http://127.0.0.1:8000/index

打开后可以看到下面这段文字。说明我们的代码没有问题。

hello,这是我的第一个django项目!!

初识Django,到此。

python的Web框架:初识Django的更多相关文章

  1. python的Web框架,Django的ORM,模型基础,MySQL连接配置及增删改查

    Django中的ORM简介 ORM概念:对象关系映射(Object Relational Mapping,简称ORM): 用面向对象的方式描述数据库,去操作数据库,甚至可以达到不用编写SQL语句就能够 ...

  2. python的Web框架,Django自定义过滤器及标签

    代码布局 有的时候框架给的过滤器不够用,需要自定义一些过滤器,所以就需要我们自己来定义一些过滤器等 自定义代码放置的路径 某个app特用(独有)的 - app 目录下的 templatetags文件夹 ...

  3. python的Web框架,Django模型系统二,模型属性,及数据库进阶查询

    原始数据接上篇文章来操作.可能需要查看后才能懂.点击这里查看 1.常用的模型字段类型 官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fie ...

  4. python常用web框架性能测试(django,flask,bottle,tornado)

    测了一下django.flask.bottle.tornado 框架本身最简单的性能.对django的性能完全无语了. django.flask.bottle 均使用gunicorn+gevent启动 ...

  5. python的Web框架,Django框架中的请求与响应

    请求与响应 简单流程图 我们先来了解一个请求与响应的大概流程  视图函数接受到的request到底是个什么对象呢? 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的 ...

  6. python的Web框架,Django模板变量,过滤器和静态文件引入

    HTML模板的路径查找 在setting中设置查找路径: #默认的查找在此处填写,优先级最高,为在manage.py的同级路径中,添加(常规是template)文件夹,在(template)文件夹中配 ...

  7. python的Web框架:Django路由系统以及模板导入

    Django的路由系统 当一个请求来到时 当一个请求来到时 1.首先到项目目录下的urls.py(根URLconf模块)中,查找路由规则: 2.根URELcof模块,里面定义了 urlpatterns ...

  8. python的Web框架,Django模板标签及模板的继承

    模板标签 在传递数据的时候,会有大量的数据展示在浏览器上,而数据会是动态变化的,在html的编写中,数据也是需要动态的,而不能是写死的,如果动态展示呢. 给定的例子数据 views传递数据给html ...

  9. Python开发【第二十一篇】:Web框架之Django【基础】

    Python开发[第二十一篇]:Web框架之Django[基础]   猛击这里:http://www.cnblogs.com/wupeiqi/articles/5237704.html Python之 ...

  10. Python之Web框架Django

    Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址  Python 下载地址:https://www.pyt ...

随机推荐

  1. RxSwift学习笔记6:Subjects/PublishSubject/BehaviorSubject/ReplaySubject/Variable

    // 从前面的几篇文章可以发现,当我们创建一个 Observable 的时候就要预先将要发出的数据都准备好,等到有人订阅它时再将数据通过 Event 发出去. // 但有时我们希望 Observabl ...

  2. DELPHI微信支付代码

    DELPHI微信支付代码   不管是微信支付还是支付宝支付, 3个最棘手的问题是:1,如何生成签名2,支付请求如何提交3, 如何验证签名 下面就围绕这二个问题来讲. 我使用的是XE3. 先看微信支付: ...

  3. Android-WebView与本地HTML (互调)

    此篇博客是基于,上两篇博客,Android-WebView与本地HTML (HTML调用-->Java的方法) , Android-WebView与本地HTML (Java调用--->HT ...

  4. ELK冷热数据分离

      通常情况下,我们使用ELK日志分析平台最常用的数据时间为1周或一个月(因业务场景不同,可能存在差别),时间比较长的数据没有特殊情况可能我们就没有必要再进行查询了,但是因业务需求或者作为凭证,这些日 ...

  5. Java内存模型与共享变量可见性

    此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 注:本文主要参考自<深入理解Java虚拟机(第二版)>和<深入理解Java内存模型> ...

  6. Linux系统文件压缩与备份(5)

    在 Linux 系统选有相当多的压缩命令可以使用,这些压缩指令可以让我们更方便的从网上下载大型文件,本章第一节内容我们就来谈谈这个 Linux 系统下常用的几种压缩格式吧. 谈完了压缩后,我们接着来说 ...

  7. [学习笔记]K-D Tree

    以前其实学过的但是不会拍扁重构--所以这几天学了一下 \(K-D\ Tree\) 的正确打开姿势. \(K\) 维 \(K-D\ Tree\) 的单次操作最坏时间复杂度为 \(O(k\times n^ ...

  8. 网易免费企业邮箱Foxmail设置方法

    网易免费企业邮箱Foxmail7.0设置方法 第一步:启动 Foxmail 邮件客户端,点击工具->账号管理,弹出如下页面. 点击新建,如下: 填写自己企业邮箱账号,然后下一步,邮箱类型选择PO ...

  9. @JsonInclude、@JsonFormat、@DateTimeFormat注解的使用

    @JsonInclude(value=Include.NON_NULL) :用在实体类的方法类的头上  作用是实体类的参数查询到的为null的不显示 @DateTimeFormat:用于接收 前端传的 ...

  10. Eleasticsearch启动失败问题解决

    问题: [root@dnode1 bin]# ./elasticsearch -d [root@dnode1 bin]# Exception in thread "main" ja ...