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. C#中使用Dictionary实现Map数据结构——VC编程网

    转载自: http://blog.51cto.com/psnx168 在VC中使用过CMap以及在Java中使用过Map的朋友应该很熟悉,使用Map可以方便实现基于键值对数据的处理,在C#中,你就需要 ...

  2. [USACO16FEB]围栏Fenced In Platinum

    题目:洛谷P3141. 题目大意:有一个方形区域,被分成若干区域.现在要去掉若干条围栏,使得所有区域连通,求最少去掉多少长度的围栏. 解题思路:贪心.建议画图思考. 先对围栏位置进行排序,然后相邻两条 ...

  3. Timestamp 转 date

    Timestamp startTime = new Timestamp(new Date().getTime());

  4. YOLOv3学习笔记

    Darknet/Yolo官网:https://pjreddie.com/darknet/yolo/ GitHub程序:https://github.com/AlexeyAB/darknet 关于程序程 ...

  5. 紫书 例题 10-21 UVa 11971(连续概率)

    感觉这道题的转换真的是神来之笔 把木条转换成圆,只是切得次数变多一次 然后只要有一根木条长度为直径就租不成 其他点的概率为1/2^k 当前这个点的有k+1种可能 所以答案为1 - (k+1)/2^k ...

  6. 【Codeforces Round #422 (Div. 2) C】Hacker, pack your bags!(二分写法)

    [题目链接]:http://codeforces.com/contest/822/problem/C [题意] 有n个旅行计划, 每个旅行计划以开始日期li,结束日期ri,以及花费金钱costi描述; ...

  7. KM最大匹配 HDU 2255

    KM算法详解+模板 - wenr - 博客园  http://www.cnblogs.com/wenruo/p/5264235.html #include<iostream> #inclu ...

  8. nyoj 1104 just for you

    just for you 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描写叙述 今天tlp和ly想去看电影了到了电影院才发现买票的人特别多 .ly不想让tlp等着急了,就先 ...

  9. javascript模拟类的最佳实践

    1:怎样模拟一个类 在sencha touch2 系列里面定义一个类和new出这个类的对象 Ext.define( "Animal", { config: { name: null ...

  10. jsbrige

    http://www.cnblogs.com/zhangqie/p/6724252.html