1 web 应用
2 c/s 和bs架构
3 python中的web框架
    a :socket
    b:路由跟视图函数匹配关系
    c:模板渲染
 django: uwsgi/wsgiref
    django: a: 用了别人的wsgiref   b:自己写的   c:自己写的        
    flask: a:用了别人的            b:自己写的   c:用了别人的:jinja2
    tornado: a 自己写的            b:自己写的   c:自己写的
4 http协议:
    -特点:1 基于TCP/IP协议之上的应用层协议
          2 基于请求-响应模式
          3 无状态保存
          4 无连接
 -请求头:
  请求首行 get /?name=sb http/1.1\r\n
     key:value\r\n
     key:value\r\n
     \r\n
     请求体的内容
    
 -响应头:
  响应首行 http/1.1 200 ok \r\n
  响应头:  key:value\r\n
     \r\n
  响应体:  html的代码
 -状态码: 1开头(正在处理)  2开头(处理成功) 3开头(重定向) 4开头(客)5开头(服务端)
5 django的安装和简单使用
    -安装:1 pip3 install django==1.11.9
          2 pycharm 下安装,选择版本号
    -使用:
         命令创建项目:django-admin startproject 项目名字
         创建app:python3 manage.py startapp app01
    -文件目录介绍:
        -manage.py---项目入口,执行一些命令
        -项目名
            -settings:全局配置信息
            -urls:总路由,请求地址跟视图函数的映射关系
        -app名字
            -migrations:数据库迁移的记录
            -models.py  数据库表模型
            -views  视图函数
    -运行项目:
        pytyon3 manage.py runserver 127.0.0.1:8001
  python3 manage.py runserver 8006
  python3 manage.py runserver
 -安装python3.7和django版本1.11.9兼容错误-----解决(逗号)
6 补充:
 0基于wsgiref定义自己的web框架
 from wsgiref.simple_server import make_server
 from url import urls
 from views import error
 def run(env, response):
  print(env) //请求头切分好 放进一个字典
  response("200 OK", [('Content-type', 'text/html')]) //
  position = env['PATH_INFO']
  func = None
  for url in urls:
   if position == url[0]:
    func = url[1]
    break
  if func:
   response = func(env)
  else:
   response = error(env)
  return [response.encode('utf-8'),]
 if __name__ == '__main__':
  ser = make_server('127.0.0.1', 8003, run)
  ser.serve_forever()
    1 decode和encode
        data = b'111111'
        data = str(data, encoding='utf-8')
        print(type(data))
        data = bytes(data, encoding='utf-8')
        print(type(data))
    2 pymysql链接数据库
        #拿到数据库链接
        conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', db='lqz', password='admin')
        #获得游标,并且查询结果数据是字典格式
        cur=conn.cursor(pymysql.cursors.DictCursor)
        #执行sql
        cur.execute('select * from user')
        #获取全部查询结果
   链接数据库(防止注入,推荐以下写法)
     cur.execute('select * from user where name=%s and password=%s ',[name,pwd])
        dic=cur.fetchall()
    3 以后写项目:
        1 不要用中文
        2 计算机名不能用中文
        3 一个工程,就是一个项目

随机推荐

  1. Dash VS Underscore

    Dash Dashes are recommended by Google over underscores (source). Dashes are more familiar to the end ...

  2. js学习总结:DOM节点一(选择器,节点类型)

    DOM:document object model 文档对象模型 DOM就是整个HTML文档的关系图谱(代表整个HTML文档),可以理解为下图: 一.查看元素节点 1.document.getElem ...

  3. ACdream - 1060 递推数(矩阵+循环节)

    https://vjudge.net/problem/71677/origin 已知A(0) = 0 , A(1) = 1 , A(n) = 3 * A(n-1) + A(n-2) (n ≥ 2) 求 ...

  4. mysql引擎,完整的见表语句,数据库模式, 常用数据类型,约束条件

    引擎 show engines : 查看引擎 innodb(默认引擎):支持事务,行级锁,外键 myisam:查询效率由于innodb,不需要支持事务,行级锁,外键,可以选用myisam来优化数据库 ...

  5. [Android] Android Butterknife 8.8.1 在 Activity 和 Fragment 、 Adapter 中的使用

    ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤.是大神JakeW ...

  6. [机器学习笔记]奇异值分解SVD简介及其在推荐系统中的简单应用

    本文先从几何意义上对奇异值分解SVD进行简单介绍,然后分析了特征值分解与奇异值分解的区别与联系,最后用python实现将SVD应用于推荐系统. 1.SVD详解 SVD(singular value d ...

  7. css flex布局详解

    来源:https://blog.csdn.net/liveinmylife/article/details/51838939 1,flex布局是个什么东西? 官方说法:Flex是Flexible Bo ...

  8. js的执行环境学习笔记

    js执行全局代码或者执行函数代码的时候,首先进行准备,然后再执行.准备阶段,就是创建执行环境的阶段. 1.执行环境 当一段js代码遇到解释器的时候,比如浏览器打开一段js代码时候,第一件事并不是马上执 ...

  9. luogu P2553 [AHOI2001]多项式乘法

    传送门 这题就是普及暴力模拟板子FFT板子,只要把多项式读入进来FFT一下就好了(不会的右转P3803) 重点是读入,我本以为这个字符串里到处都有空格,这里提供一种简单思路: 因为里面可能有空格,所以 ...

  10. python中读取mongodb数据并保存为csv格式的文件

    import pandas as pd import matplotlib.pyplot as plt import pymongo %matplotlib inline # 连接mongodb数据库 ...