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>

3/18 Django框架 启动django服务的更多相关文章

  1. Django框架02 /Django下载安装、url路由分发

    Django框架02 /Django下载安装.url路由分发 目录 Django框架02 /Django下载安装.url路由分发 1. django下载安装 2. pycharm创建项目 3. 基于D ...

  2. Django框架 (七) Django ORM模型

    ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装

  3. Django框架(一)-Django初识

    Django初识 一.Web框架本质—自己实现Web框架 1.所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端 import socket sk = sock ...

  4. django框架基础-django redis-长期维护-20191220

    ###############   django框架-django redis    ############### # 学习django redis我能得到什么? # 1,项目中广泛使用到redis ...

  5. django框架搭建web服务

    一.工具 环境:windows 7 python 2.7.7     下载地址:https://www.python.org/downloads/release/python-2713/   ps:这 ...

  6. Django框架(四) Django之视图层

    视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...

  7. Django框架(六) Django之模板继承

    模版导入和继承 模版导入 一个页面只能继承一个模板,如何解决了?如何使用多个模板,或者引入其他页面 <% include "a.html" %> 可以引用多次 模板,i ...

  8. Django框架(十) Django之模型进阶

    QuerySet对象 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. Entry.objects.all()[:5] # (LIMI ...

  9. Django框架(九) Django之ORM常用字段和参数

    ORM字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范 ...

随机推荐

  1. 两天学会DirectX 3D之入门

    环境配置以及背景知识 环境 Windows 8.1 64bit VS2013 Microsoft DirectX SDK (June 2010) NVDIA Geforce GT755 环境的配置參考 ...

  2. CentOS 中使用yum出现的“UnicodeDecodeError: &#39;ascii&#39; codec”问题解决方法

    问题 新装了CentOS 6.5系统,打算使用yum安装程序是出现了例如以下错误: Loading mirror speeds from cached hostfile Traceback (most ...

  3. Exception: Operation xx of contract xx specifies multiple request body parameters to be serialized without any wrapper elements.

    Operation 'CreateProductCodeStock' of contract 'IChileService' specifies multiple request body param ...

  4. 79.express里面的app.configure作用

    以下摘自 express 3.0 的 文档 app.configure([env], callback) Conditionally invoke callback when env matches ...

  5. centos 6.5搭建Samba

    Samba共享服务器 先将selinux关闭和防火墙端口号打开 #iptables -A INPUT -p udp -dport -j ACCEPT #iptables -A INPUT -p udp ...

  6. Zuul 2 : The Netflix Journey to Asynchronous, Non-Blocking Systems--转

    原文地址:http://techblog.netflix.com/2016/09/zuul-2-netflix-journey-to-asynchronous.html We recently mad ...

  7. 异常:error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'

    error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System. ...

  8. @Accessors

    @Accessors 作用:存取器,用于配置getter和setter方法的生成结果 三个属性:fluent.chain.prefix 1.fluent:流畅的,设置为true,getter和sett ...

  9. Effective C++ Item 38 通过复合塑模出 has-a 或 is-implemented-in-terms-of

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:在应用域,复合意味着 has-a. 在实现域.复合意味着 is-implemented ...

  10. 华为荣耀3C最新版ROM的root,(4.7.1和4.8.1等等通用方法)

    手头一台honor 3c的机器.应该是线刷的时候,把IMEI给刷掉了.导致移动2G卡无法上网. 刷了4.7.1或者4.8.1.尝试了全部方法都root失败了. 正好我手头有6582的代码.我想.既然系 ...