Django
1.自己开发web框架
-socket
-http协议 请求头与请求体用两个换行分别
-html知识
-数据库(pymysql,sqlalchemy)
2.Django框架
内容回顾:
mysql是数据源
操作mysql方法
终端
pymysql
sqlalchemy
1.安装
2.创建用户+授权
3.
连接
-数据库
终端创建数据库(字符编码)
-数据表
终端
ORM(sqlalchemy)
pymysql
engine = innodb
-数据行
增
删
改
查
-limit(只是访问索引也慢,就记录标记行)
-group by
....
关闭
ORM框架原理:
将类和对象转换为SQL语句,再通过第三方的比如pymysql连接,执行SQL语句。
socket 客户端与服务端 持续连接 TCP是连接
浏览器是个socket客户端。
HTTP请求:
无状态,短连接。连一次,回一次,断开。
TCP:
不断开
web应用(网站)
HTTP协议(数据规则)
发送
响应
浏览器(socket客户端)
2.www.cnblogs.com(42.121.252.58:80)
sk.socket()
sk.connect(42.121.252.58:80)
sk.send(想要什么)
5.接受
6.连接断开
博客园(socket服务端)
1.监听IP和端口
while True:
用户=等待用户连接
3.收到“我想要什么”
4.响应“好”
HTTP协议请求,响应
请求
b'GET /index?p=123 HTTP/1.1\r\n
Host: 127.0.0.1:8080\r\n
Connection: keep-alive\r\nCache-Control: max-age=0\r\nUpgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.4.0.17462\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n
Accept-Encoding: gzip, deflate, br\r\n
Accept-Language: zh-CN,zh;q=0.8\r\n\r\n'
请求体
p=123
响应头
响应体
页面右键源代码(这么大一串字符串)
1.http,无状态+短连接
2
浏览器(socket客户端)
网站(socket服务端)
3.自己写网站
a.socket服务端
b.根据URL不同返回不同的内容
路由系统:
URL =>函数
c.字符串返回给客户
模板引擎渲染(特殊字符替换):
HTML充当模板(特殊字符)
字符串
4.Web框架:
框架种类:
-包含a,b,c ------->Tornado
-[第三方a],b,c ---->用的pyton的模块wsgiref --->Django
-[第三方a],b,[第三方c] jinja2 ---->flask
分类:
-Django
-其他
二:Django框架
命令:
pip3 install django
django-admin startproject mysite 创建项目
cd mysite
python manage.py runserver 127.0.0.1:8080 开启服务
pycharm:
。。。
Django程序目录
newdjango
newdjango
-settings.py Django配置文件
-url.py 路由系统:url->函数
-wsgi.py 用于定义Django用socket,默认的是wsgiref,以后生产上用uwsgi
manage.py 对当前Django程序所有操作可以基于它 python manage.py runserver
使用Django固定步骤
1.创建project
2.配置
1-模板路径
-settings .py 'DIRS': [os.path.join(BASE_DIR,"templates")],
templates目录
2-静态文件路径,记得加逗号。
-settings.py
static目录 STATICFILES_DIRS = (os.path.join(BASE_DIR,"static"),)
这上面还有一句STATIC_URL = '/static/' 在前端用的时候,它的前缀是什么,前缀是static,则他就会到os.path.join(BASE_DIR,"static"),目录下去找文件。
他们两个是配合起来的
-
3.middleware 中,注释csrf
4.url对应关系
/login/ login
在Django中,如果是GET请求,则只有request.GET有数据
如果是POST请求,request.POST, request.GET可能都有数据。 /login/?p=123
def login(request)
request.GET ->请求头中的url
request.POST -》请求体
request.method
return HttpResponse("dsa")
return render(request,"login.html",{})
return redirect("http//www.")要跳转的网址。
5.模板引擎的特殊标记。
login.html中
{{name}}
posted on 2018-08-23 10:24 castiel_lee 阅读(72) 评论(0) 收藏 举报
浙公网安备 33010602011771号