web应用,c/s,b/s架构 c/s: 客户端 服务端 b/s: 浏览器 服务器

HTTP协议: 超文本传输协议 四大特性:

1.基于TCP/IP作用在应用层之上的协议

2.基于请求响应

3.无状态

4.无连接

数据格式之请求:

请求首行

请求头(一大堆的k,v键值对)

        请求体
数据格式之响应:
响应首行
响应头(一大堆的k,v键值对) 响应体
响应状态码:
10X 服务端已经接收你的数据,正在处理,你可以继续提交数据
20X 请求成功
30X 重定向
40X 请求错误(404:请求资源不存在)
50X 内部服务器错误

手撸简易版web框架

动静态网页 静态页面: 数据是写死的 万年不变 动态页面: 数据时实时获取的,比如后端获取当前时间展示到前端,从数据库获取数据展示到前端等~~~

路由与视图函数映射关系 urls = [ ['/index',index], ['/login',login], ['/reg',reg], ['/get_time',get_time] ] 模板渲染(雏形): 后端获取数据,传递给前端页面,页面上可以通过某些方法,使用到后端传递过来的数据

推到思路 1.纯手撸 2.借助wsgiref帮我实现socket这块 3.先拆分成不同文件 模板渲染由自己的字符串替换变成第三方模块(jinja2)

模板语法(接近python语法)

{{ data }}

{{ data.name }}

{{ data['name'] }}

{{ data.get('name') }}

{{ data.age }}

            {% for data in user_list %}
          <tr>
              <td>{{data.id}}</td>
              <td>{{data.name}}</td>
              <td>{{data.age}}</td>
          </tr>
          {% endfor %}

python三大主流web框架介绍 django(大而全) flask(小而精) tornado(异步非阻塞)

a:socket b:路由与视图函数 c:模板渲染

django: a用的别人的wsgiref b:自己写的 c:自己写的

flask:a用的别人的werkzeug b:自己写的 c:用的别人的jinja2

tornado:都是自己写的

django简介 注意 1.django版本 2.计算机名不能是中文 3.一个pycharm窗口就一个工程

安装 命令行下载 pip3 install django==1.11.11

命令行创建django项目django-admin startproject mysite

命令行创建app python manage.py startapp 应用名

命令行启动django python manage.py runserver

用命令行创建的时候,默认没有templates文件夹,需要你自己手动创建 并且在settings配置文件中写上路径

pycharm下载 点加号 选版本 创建new project选第二个django项目(选本机环境,暂时不要选虚拟环境)

两种创建app的方式: python manage.py startapp 应用名 tools下面的run manage.py 能够简写并自动提示

运行方式 python manage.py runserver pycharm自动启动

django主要文件介绍 app01 migrations 数据库迁移记录相关 models.py orm模型类 views.py 视图函数 templates 放html文件 manage.py django的启动入口文件

项目名下 setttings.py django项目的配置文件 urls.py 路由与视图函数的映射关系

django必会三板斧

HttpResponse 返回字符串

render 渲染页面并返回

redirect 重定向

django默认能够自动重启,但是速度可能没有那么快

进入django的更多相关文章

  1. 异步任务队列Celery在Django中的使用

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...

  2. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  3. django server之间通过remote user 相互调用

    首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...

  4. Mysql事务探索及其在Django中的实践(二)

    继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...

  5. Mysql事务探索及其在Django中的实践(一)

    前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...

  6. 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...

  7. 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...

  8. 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...

  9. Django

    一.Django 简介 Django 是一个由 Python 写成的开放源代码的 Web 应用框架.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是 CMS(内容管理系统) ...

  10. Django admin定制化,User字段扩展[原创]

    前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...

随机推荐

  1. PHP中的DateTime类

    DataTime类跟date(),strtotime(),gmdate()等函数有相同的作用,都是用来处理日期和时间的,但DateTime类更加直观.方便, 所以在PHP5.2.0以后推荐使用Date ...

  2. ADT SDK Manager启动时一闪而过

    原因为使用了Android Studio的绿色JRE,必须要安装安装版JDK或者JRE,绿色版JRE放在ADT目录虽然能启动ADT但是不能启动SDK Manager

  3. luogu2597-[ZJOI2012]灾难 && DAG支配树

    Description P2597 [ZJOI2012]灾难 - 洛谷 | 计算机科学教育新生态 Solution 根据题意建图, 新建一个 \(S\) 点, 连向每个没有入边的点. 定义每个点 \( ...

  4. vue数组中对象属性变化页面不渲染问题

    问题引入 Vue之所以能够监听Model状态的变化,是因为JavaScript语言本身提供了Proxy或者Object.observe()机制来监听对象状态的变化.但是,对于数组元素的赋值,却没有办法 ...

  5. min-max容斥学习笔记

    min-max容斥学习笔记 前置知识 二项式反演 \[ f(n)=\sum_{i=0}^n\binom{n}{i}g(i)\Leftrightarrow g(n)=\sum_{i=0}^n(-1)^{ ...

  6. 洛谷P1108 低价购买题解

    看到"你必须用低于你上次购买它的价格购买它",有没有想到什么?没错,又是LIS,倒过来的LIS,所以我们只要把读入的序列倒过来就可以求LIS了,第一问解决. 首先要厘清的是,对于这 ...

  7. win32: 文本编辑框(Edit)控件响应事件

    过去几年,关于文本编辑框(Edit)控件的响应事件,我都是在主程序 while(GetMessage(&messages, NULL, 0, 0)) { ... } 捕获. 总感觉这种方式让人 ...

  8. prometheus 配置介绍

    prometheus 配置介绍 prometheus 配置分global.alerting.rule_files.scrape_configs 1.global(全局配置) scrape_interv ...

  9. PowerDesigner生成pdm(适用Mysql)

    废话不多说,直接开始: 1.首先安装所需要的驱动以及应用程序 ①和② 是 Mysql数据库连接驱动 ,根据PowerDesigner的位数来选择下载 下载地址:https://dev.mysql.co ...

  10. 分布式监控系统开发【day37】:填充表配置项目(三)

    一.注册站点初始化数据库 1.目录结构 2.初始化数据库 python3 manage.py makemigrations python3 manage.py migrate #django2.0之前 ...