$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 一个工程,就是一个项目
随机推荐
- row_number()over()使用
语法: ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause ) 通过语法可以看出 o ...
- VS 在文件中查找替换界面死掉。
主要问题时一个CopyAndReplace的插件引起的.卸载掉就没问题了.
- 俄罗斯方块部分功能(Java)
package OO.day01; public class TetrisCell { int totalRow = 20; int totalcol = 10; //定义横宽 int row; in ...
- sql库连sql中间库连orcle库增删改查方案
---中间库建立存储过程create procedure Proc_exec@SQL nvarchar(MAX)ASexec(@SQL) GO---web服务器执行语句 --查 select * fr ...
- Nmap扫描基础常用命令(包含进阶使用)
Nmap扫描常用命令 - Nmap scans common commands 1.扫描单个目标 nmap ip 如:nmap 192.168.0.101 2.扫描多个目标 nmap ip1 ip2 ...
- 三层结构与MVC
实验室学弟突然又谈到了三层结构与MVC的话题,想想还是有必要整理一下这些个基本概念,且也纠正自己之前对二者的概念混淆,乃至将其错误思想指导于开发中. 关键词:三层结构(三层架构).MVC框架(思想). ...
- Coursera, Deep Learning 4, Convolutional Neural Networks - week4,
Face recognition One Shot Learning 只看一次图片,就能以后识别, 传统deep learning 很难做到这个. 而且如果要加一个人到数据库里面,就要重新train ...
- Kaldi如何统计data数据集
统计时长 wav-to-duration scp:data/train/wav.scp ark,t:- 2>/dev/null|awk 'BEGIN{SUM=0}{SUM+=$2}END{pri ...
- day 11 - 2 装饰器练习
1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件)要求登录成功一次,后续的函数都无需再输入用户名和密码 FLAG = False def login(func): def inner ...
- Django REST framework 第七章 Schemas & client libraries
模式是一个机器可读文档,描述可用的API端点,URL以及它们支持的操作. 模式对于自动生成文档是一个很有用的工具,也可以用来动态调用可以于API交互的客户端库. Core API 为了提供模式支持,R ...