web框架:本质是socket服务端,socket通常也被称为“套接字”,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。web框架就是将web应用开发中通用的部分抽象出来,形成一个框架,再去实现特定的功能。

对于真实开发中的python web程序来说,一般会分为两部分:服务器程序和应用程序。

服务器程序:将socket服务端进行封装,接受HTTP请求,发送HTTP响应。这些工作比较繁琐,由专门的软件执行,如Apache、Nginx等。

应用程序:负责具体的业务逻辑。比如用户输入账号和密码,服务器程序接收请求后,将请求转发给web应用框架,框架和数据库交互、处理好请求后,再将请求转发给服务器程序,再由服务器程序返回给用户。

WSGI:WSGI(Web Server Gateway Interface )是位于服务器程序与web应用程序之间的一种接口。WSGI更像是一种协议,它提供一个函数,由服务器来调用,只要满足条件,应用程序就可以在服务器上运行。WSGI函数需要提供两个参数:

def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html;
charset=utf-8')])
return '[<h1>你好, django!</h1>.encode()']
environ:包含所有HTTP请求信息的dict对象;
start_response:发送HTTP响应的函数。

常用的web框架:

  • django:全能型
  • tornado:优秀的异步框架
  • web.py:小巧的web框架
  • flask:优秀的轻量级web框架

设计模式:MTV、MVC等

2.django框架介绍

准备环境

  • ubuntu
  • python3.5+
  • Pycharm 2017.1.5+专业版
  • MYSQL
    每创建一个新的django项目,都要新建一个python隔离环境

3.django框架的简单操作

  1. 创建项目:django-admin startproject <projectname>
    cd~ | mkdir project | cd project | django-admin startproject crm |cd crm|crm下的crm就是项目的根目录,和manager.py同一层
    2.pycharm创建项目远程关联 add python interpreter | Tools - Development -Configuration:改name、Connection里的Root path改为虚拟环境文件存放位置,Mappings里的Deployment Path改为"/"
    3.启动服务
  • 命令行:python manager.py runserver ip:port ip:0.0.0.0 / 0 在项目根目录下
    也可以用pycharm远程连接虚拟机启动服务
    乱码问题:settings-SSH terminal-default encoding改为utf-8
  • pycharm配置:Add Configuration - + - Django server - Host改为0.0.0.0
    settings-django- enabled django support - root改为本地项目根目录 settings改为 crm/settings.py

4.第一个视图

项目和应用

  • 创建一个应用 命令: python manager.py startapp <name>

最新文章

  1. MySQL免安装数据库配置-Windows8.1
  2. [ThinkPHP]打开页面追踪调试
  3. ASP.Net页面刷新后自动滚动到原来位置
  4. ActiveMQ点对点的消息发送案例
  5. maven为不同环境打包(hibernate)-超越昨天的自己系列(6)
  6. Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell&#39;s content view...
  7. atitit。浏览器缓存机制 and 微信浏览器防止缓存的设计 attilax 总结
  8. Linux命令备忘录
  9. [TPYBoard-Micropython之会python就能做硬件 3] 制作电子时钟
  10. centos7 ssh免密码登录
  11. Nhibernate学习教程(1)-- 开篇有益
  12. Android热修复框架汇总整理(Hotfix)
  13. 用Qemu运行/调试arm linux【转】
  14. Linux下如何进入中文目录
  15. emacs24 颜色主题设置
  16. rest_framework框架的认识
  17. css中,在高度已知,写出三栏布局,其中左栏、右栏宽度各位300px,中间自适应
  18. byte数组和int之间相互转化的方法
  19. redis sentinel哨兵模式集群搭建教程
  20. vue 父子组件相互传参

热门文章

  1. [Android随笔]内存泄漏以及内存溢出
  2. javascript学习笔记总结
  3. OpenSUSE42.3 leap 开启ssh登陆
  4. Python之路:画空心矩形
  5. debian8平滑升级到debian9
  6. boost.property_tree的高级用法(你们没见过的操作)
  7. Android学习总结(2)——App客户端与服务器交互中的token
  8. Linux 下查看某进程的线程数
  9. ecshop微信通中微信自动登录的设置方法
  10. HOJ——T 2430 Counting the algorithms