$Django 等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:自己写的
-特点:1 基于TCP/IP协议之上的应用层协议
2 基于请求-响应模式
3 无状态保存
4 无连接
-请求头:
请求首行 get /?name=sb http/1.1\r\n
key:value\r\n
key:value\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兼容错误-----解决(逗号)
0基于wsgiref定义自己的web框架
from wsgiref.simple_server import make_server
from url import urls
from views import error
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)
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 一个工程,就是一个项目
随机推荐
- 如何比较一个类型【模板使用】【sizeof用法】
#include <iostream> using namespace std; void testEmptyClass(); struct Empty { }; struct Dummy ...
- SVN快速入门笔记【转】
1. SVN版本控制软件目的 协作开发 远程开发 版本回退 2. 什么是SVN subVersion 支持平台操作 支持版本回退 3. 获取SVN软件 属于C/S结构软件(客户端与服务端) serve ...
- Vuex笔记
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 Vuex - 状态管理器,可以管理你的数据状态(类似于 React的 Redux) 一个 Vuex 应用的核心是 store(仓库,一个 ...
- Spring 单例模式
恶汉模式:Ehan.java package com.cn.danli; /** * 饿汉式单例模式 */ public class Ehan { private static Ehan eh = n ...
- Information Retrieval 倒排索引 学习笔记
一,问题描述 在Shakespeare文集(有很多文档Document)中,寻找哪个文档包含了单词“Brutus”和"Caesar",且不包含"Calpurnia&quo ...
- es6 javascript对象方法Object.assign() 对象的合并复制等
Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). 详细使用稳步到前辈: http://blog.csdn.net/qq_ ...
- 华为平板安装APK,提示“该安装包未包含任何证书”
有的平板上会有错误现象 打包时签名勾选v1即可.
- C++ 出现异常“.... \debug_heap.cpp Line:980 Expression:__acrt_first_block==header"
本人是在写dll项目中出现了这个问题,经过一天的研究,尝试了三个步骤1.在配置属性->常规->MFC的使用中,将在静态库中使用MFC改为在共享DLL中使用MFC.但是还会出错2.原因是dl ...
- dbms_redefinition在线重定义表结构 可以在表分区的时候使用
dbms_redefinition在线重定义表结构 (2013-08-29 22:52:58) 转载▼ 标签: dbms_redefinition 非分区表转换成分区表 王显伟 在线重定义表结构 在线 ...
- Access数据库SQL注入(Access SQL Injection)
一.Microsoft Office Access数据库手工注入语句 1.参数后面加 ’ .and 1=1.and 1=2看返回状态判断是否存在注入点 2.参数后面加 and exists(sel ...