django框架初探
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框架初探的更多相关文章
- Python Django 学习 (一) 【Django 框架初探】
1. 简介: Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.2008年9月发布第一个版本,目前的Django版本应该是2.1. 2. 本文的环境 OS : W ...
- Django 框架初步了解
Django框架初探 1.web框架介绍 本质 socket 服务端 : 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.建立网络通信连接至少要一对端口号(s ...
- MVC其实很简单(Django框架)
Django框架MVC其实很简单 让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过Web框架来实现的功能与之前的方式有何不同. 下面就是通过使用Django来完成以上功能的例子: 首先,我们 ...
- Django框架-目录文件简介
Rhel6.5 Django1.10 Python3.5 Django框架-目录文件简介 1.介绍Django Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django, ...
- Django框架学习
两个月前学习的Django框架,写了个简易婚恋调查网站,代码就懒得全贴了,有两张图记录下
- django框架的models
在django的框架设计中采用了mtv模型,即Model,template,viewer Model相对于传统的三层或者mvc框架来说就相当对数据处理层,它主要负责与数据的交互,在使用django框架 ...
- Windows上python开发--2安装django框架
Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...
- MySQL在Django框架下的基本操作(MySQL在Linux下配置)
[原]本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作,核心内容如下: ------------------------------------------------------ ...
- django框架介绍
主要内容 1. Django框架发展 2. Django架构,MTV模式 3. 开发流程 4. 开发实例——Poll python下各种框架 一 ...
随机推荐
- linux系统下,11款常见远程桌面控制软件(转载)
远程控制能够给人们带来很多便利,本文介绍了11款常见的Linux系统下的远程桌面控制工具,总有一款能适合您. 一. Grdc 它是一个用GTK+编写的,适用于gnome桌面环境的远程桌面访问软件.看图 ...
- caffe(1) 网络结构层参数详解
prototxt文件是caffe的配置文件,用于保存CNN的网络结构和配置信息.prototxt文件有三种,分别是deploy.prototxt,train_val.prototxt和solver.p ...
- nginx配置虚拟域名
/usr/lcoal/nginx/conf/nginx.conf 配置详解如下: worker_processes 1; ...
- 发工资了T_T
和哈比一起吃的四人餐 望京很好很和谐
- 紫书 习题 10-12 UVa 557(概率计算)
开始的时候我没有考虑1/2的概率,直接一波组合数,然后WA 后来去看题解发现我们可以反过来想,求最后两个人不一样的情况 这个时候肯定会抛到最后的 所以每一种可能就是(0.5)^(n - 2),然后一共 ...
- P4287 [SHOI2011]双倍回文(回文树)
题目描述 记字符串 w 的倒置为 w^R^ .例如 (abcd)^R^=dcba , (abba)^R^=abba . 对字符串x,如果 x 满足 x^R^=x ,则称之为回文:例如abba是一个回文 ...
- WHU 1540 Fibonacci 递推
武大邀请赛的网络预选赛,就去做了个签到题,居然连这个递推都没推出来,真是惭愧. 而且好久没写矩阵乘法了,来回顾一下. 题意: 求Fibonacci数列的,前n项立方和. 思路: 可以求得一下递推公式: ...
- Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- COGS——T2084. Asm.Def的基本算法
http://cogs.pro/cogs/problem/problem.php?pid=2084 ★☆ 输入文件:asm_algo.in 输出文件:asm_algo.out 简单对比时间 ...
- select & epoll
同步.异步.堵塞和非堵塞差别 同步:发出一个功能调用时.在没有得到结果之前,该调用就不返回 异步:当一个异步过程调用发出后.调用者不能立马得到结果.实际处理这个调用的部件在完毕后.通过状态.通知和回调 ...