django框架初探

1.web框架介绍

  web框架本质是一个socket服务端。每一个端口只能被一个程序监听。

  web程序分为两个部分:

  服务器程序:对socket服务器封装,解析http请求,发送http响应。

  应用程序:负责具体的业务逻辑。

  WSGI:(Web Service Gateway Interface)WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。

我们先编写hello.py,实现Web应用程序的WSGI处理函数:

  #hello.py

  def application(environ, start_response):

    start_response('200 OK', [('Content-Type', 'text/html')])

     return '<h1>Hello, web!</h1>'

上面的application()函数就是符合WSGI标准的一个HTTP处理函数,它接收两个参数:

  environ:一个包含所有HTTP请求信息的dict对象;

    start_response:一个发送HTTP响应的函数。

  application()函数必须由WSGI服务器来调用。Python内置了一个WSGI服务器,这个模块叫wsgiref,它是用纯Python编写的WSGI服务器的参考实现。所谓“参考实现”是指该实现完全符合WSGI标准,但是不考虑任何运行效率,仅供开发和测试使用。

然后,再编写一个server.py,负责启动WSGI服务器,加载application()函数:

  # server.py

 # 从wsgiref模块导入:from wsgiref.simple_server import make_server

# 导入我们自己编写的application函数:
from hello import application # 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
httpd = make_server('', 8000, application)
print "Serving HTTP on port 8000..."
# 开始监听HTTP请求:
httpd.serve_forever()
确保以上两个文件在同一个目录下,然后运行server.py来启动WSGI服务器,启动成功后,打开浏览器,输入
http://localhost:8000/,就可以看到结果了。

web框架就是将web应用开发中通用的部分抽象出来,像造房子一样,形成一个框架,再去实现我们特定的功能。
常见的Python Web框架有:
  django 全能型
  tornado 优秀的异步框架
  web.py 小巧的web框架
  flask 优秀的轻量级的web框架
设计模式:
  mtv:
    m:model模型
    t:template 模型(页面)
    v:view 视图
  mvc:Model-View-Controller,中文名“模型-视图-控制器”。和mtv没有本质的区别。

2.django框架的介绍
环境搭建,django安装
准备环境:
ubuntu
python3.5+
pycharm 2017.1.5+专业版
MySQL 每创建一个新的django项目,都要新建一个python隔离环境。 隔离环境:
1.查看  workon
2.创建  mkvirtualenv -p /usr/bin/python3.6 envname
3.进入  workon envname
4.退出  deactivate
5.删除虚拟环境  rmvirtualenv envname 创建一个名为crm的python隔离环境 mkvirtualenv -p /usr/bin/python3.6 crm
安装一个django包:pip install django django简单操作:
1.创建项目:  django-admin startproject <projectname>

2.pycharm创建项目远程关联:

3.启动服务
命令行:python manage.py runserver ip:port 在项目根目录
(ip:0.0.0.0)

用pycharm配置:

第一个View:
项目和应用
项目:有一些设置的django
创建一个应用:python manage.py startapp appname
应用可以有多个,应用之间通过项目交互




 

django框架初探的更多相关文章

  1. Python Django 学习 (一) 【Django 框架初探】

    1. 简介: Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.2008年9月发布第一个版本,目前的Django版本应该是2.1. 2. 本文的环境 OS : W ...

  2. Django 框架初步了解

    Django框架初探 1.web框架介绍 本质 socket 服务端 : 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.建立网络通信连接至少要一对端口号(s ...

  3. MVC其实很简单(Django框架)

    Django框架MVC其实很简单 让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过Web框架来实现的功能与之前的方式有何不同. 下面就是通过使用Django来完成以上功能的例子: 首先,我们 ...

  4. Django框架-目录文件简介

    Rhel6.5 Django1.10 Python3.5 Django框架-目录文件简介 1.介绍Django Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django, ...

  5. Django框架学习

    两个月前学习的Django框架,写了个简易婚恋调查网站,代码就懒得全贴了,有两张图记录下

  6. django框架的models

    在django的框架设计中采用了mtv模型,即Model,template,viewer Model相对于传统的三层或者mvc框架来说就相当对数据处理层,它主要负责与数据的交互,在使用django框架 ...

  7. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

  8. MySQL在Django框架下的基本操作(MySQL在Linux下配置)

    [原]本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作,核心内容如下: ------------------------------------------------------ ...

  9. django框架介绍

    主要内容 1.        Django框架发展 2.        Django架构,MTV模式 3.        开发流程 4.        开发实例——Poll python下各种框架 一 ...

随机推荐

  1. 关于PHPExcel上传Excel单元格富文本和时间类型读取数据问题

    当用PHPExcel做Excel上传文件读取数据时,print_r出来的数据,竟然发现其中有几个单元格返回的是PHPExcel富文本对象,而且时间类型的单元格返回的是一个不是时间戳的五位数.就像下图那 ...

  2. MFC打包生成可安装文件

    一.问题来源: VS环境:编写的MFC程序即使静态联编之后,在客户机器上还是打不开.可能的原因是你开发的时候调用了第三方ActiveX控件.这时候就需要把自己的release版的发布软件和*.ocx控 ...

  3. perl异常处理

    程序脚本在运行过程中,总会碰到这样那样的问题,我们会预知一些问题并为其准备好处理代码,而有一些不能预知.好的程序要能尽可能多的处理可能出现的异常问题,本文就总结了一些方法来解决这些异常,当然perl在 ...

  4. 用Python定时爬取网站最新资源

    记录一下. 写做个网站,爬了另一个网站的内容来做自己网站的内容. 把脚本挂到服务器,每隔一个小时去爬一次资源,然后保存到一个HTML文件里. 用flask做web对接,当有请求的时候就返回那个HTML ...

  5. struts2怎么返回一个字符串给jsp?(使用json)

    我们都知道使用servlet时可以直接用PrintWriter对象的print方法来向页面传送一些字符串(可以是html标签和内容),然后在用RequestDispatcher来转向网页 虽Strut ...

  6. sql暂时表的创建

    create table #simple  /*仅仅对当前用户有效.其它用户无法使用,断掉连接后马上销毁该表*/ ( id int not null ) select * from #simple c ...

  7. 安卓自己定义对话框及The specified child already has a child问题

    问题:在android开发过程中,有时会在不同情况下遇到同种问题:The specified child already has a parent.You must call removeView() ...

  8. windows下用ADT进行android NDK开发的具体教程(从环境搭建、配置到编译全过程)

    郑重申明:如需转载本博客,请注明出处,谢谢! 这几天在学习android NDK的开发.那么首先让我们来看看android NDK开发的本质是什么. NDK(Native Development Ki ...

  9. Docker Network Configuration 高级网络配置

    Network Configuration TL;DR When Docker starts, it creates a virtual interface named docker0 on the ...

  10. mysql简单优化思路

    mysql简单优化思路 作为开发人员,数据库知识掌握的可能不是很深入,但是一些基本的技能还是要有时间学习一下的.作为一个数据库菜鸟,厚着脸皮来总结一下 mysql 的基本的不能再基本的优化方法. 为了 ...