zoukankan      html  css  js  c++  java
  • $Django 等web框架,交互,基础入门

    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
         key:value
         key:value
        
         请求体的内容
        
     -响应头:
      响应首行 http/1.1 200 ok
      响应头:  key:value
        
      响应体:  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 一个工程,就是一个项目
  • 相关阅读:
    上下文切换
    NUMA的取舍与优化设置
    KVM CPU线程等学习记录
    openstack cpu pinning
    virt-install详解
    对KVM虚拟机进行cpu pinning配置的方法
    30 个 OpenStack 经典面试问题和解答
    OpenFace Docker 使用简介
    单链表、双链表及单链表的逆序
    Ubuntu14.04.1安装搜狗拼音输入法
  • 原文地址:https://www.cnblogs.com/3sss-ss-s/p/9910485.html
Copyright © 2011-2022 走看看