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. SRM464

    250pt       对于一个字符串,当他为colorful时满足其所有的子串的值不一样, 值的定义如下,如“236”,定义其值为2 * 3 * 6 = 36. 现题目给定字符串长度n(1 < ...

  2. linux-python在vim下的自动补全功能

    linux-python在vim下的自动补全功能 安装配置: wget https://github.com/rkulla/pydiction/archive/master.zipunzip -q m ...

  3. iOS笔记之UIKit_UIButton

    //UIButton的基本属性 _btn = [UIButton buttonWithType:UIButtonTypeCustom]; _btn.frame = CGRectMake(0, 200, ...

  4. [LintCode] Permutations II

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

  5. Docker 持续集成初次体验

    背景 在家的时候,实在不想做其他的,想起之前参加的一场关于docker的座谈会,于是想搞以下docker. 开始 在道客云上搞了一下持续集成,总体来说,比较好用的. 写了一个Go程序,就是之前写的发邮 ...

  6. 读取ViewBag匿名类

    关于遍历 viewBag匿名类错误 EF tt生成的类 明明有值眼睁睁看着 却不认识 public ActionResult Index() { MyTestEntities1 db = new My ...

  7. ubuntu 12.04 安装node.js

    在 Ubuntu 12.04 安裝 Node.js 使用 nvm(Node Version Manage) 來安裝 node.js, 預先需要 curl, git, g++ : $ sudo apt- ...

  8. NET npoi 保存文件

    npoi完整代码:NET npoi帮助类 public static void DataTableToExcel(List<DataTable> dataTables, string fi ...

  9. Asp.Net 学习笔记(IIS不同版本和Asp.Net)

    主要目的是在网上记录一下学习笔记,如有不对,请指出 谢谢!! iis5.x: 存在问题,inet info收到动态请求后,aspnt_isapi.dll会被加载到inetinfo.exe(挂载w3sv ...

  10. 重置identity值

    如果数据库在SQL2008或以上,可以参考下面方法: DBCC CHECKIDENT ( table_name [, { NORESEED | { RESEED [, new_reseed_value ...