http的请求声明周期:域名----DNS服务器---IP地址---基于tcp协议的http协议发送请求协议,服务端返回响应头+响应体(我们所看到的页面(是经过js渲染的,接收的是字符串))服务端(web服务)根据我们发送的url,对应不同的函数(路由系统)不同的函数返回不同的数据:1每次都返回相同的字符串:静态网页 2每次返回不同的字符串:动态网页 3从数据库中读取数据,用模板引擎渲染到html中(模板渲染replace) 4用第三方工具jinja2渲染模板(自动将数据库中读出的数据渲染到html中) 自己开发web框架: socket http协议 无状态 短连接 html知识 数据库(pymysql,sqlachemy) http协议回顾: 浏览器(socket客户端) 2. www.cnblogs.com(42.121.252.58,80) sk.socket() sk.connect((42.121.252.58,80)) sk.send(‘我想要xx‘) 5. 接收 6. 连接断开 博客园(socket服务端) 1. 监听ip和端口(42.121.252.58,80) while True: 用户 = 等待用户连接 3. 收到‘我想要xx‘ 4. 响应:“好” 用户断开 自己写网站: 1 socket服务端 2 根据url不同返回不同的内容 路由系统:url----函数 3 字符串返回用户 模板引擎渲染:html充当模板,数据库是来源,jinja2第三方渲染工具 自己创造任意字符串web框架: 分类方式一: - 1,2,3 tornado - [第三方1],2,3 django---wsgiref - [第三方1],2,[第三方3] flash 分类方式二: - Django - 其他 django框架: 安装:pip3 install django # 创建Django程序 django-admin startproject mysite # 进入程序目录 cd mysite # 启动socket服务端,等待用户发送请求 python manage.py runserver 127.0.0.1:8080 程序目录简介: mysite mysite - settings.py # Django配置文件 - url.py # 路由系统:url->函数 url 对应关系: /login/ login def login(request): request.method request.POST request.GET - wsgi.py # 用于定义Django用socket, wsgiref,uwsgi manage.py # 对当前Django程序所有操作可以基于 python manage.py runserver 初始操作: 1 创建project 2 写配置文件: - 模板路径:template目录 TEMPLATES=[‘DIRS‘: [os.path.join(BASE_DIR, ‘template‘)],] - 静态文件路径:static目录 STATIC_URL = ‘/static/‘ STATICFILES_DIRS = ( os.path.join(BASE_DIR,‘static‘), ) - 其他配置: MIDDLEWARE = [ #‘django.middleware.csrf.CsrfViewMiddleware‘,] 静态网站 : 访问相同的域名,看到相同的内容 GET请求 ---------》只有request.GETPOST请求-------》 request.GET和request.POST都可能有值 模板引擎中的特殊标记:<p>{{ name }}</p><p>{{ users.0 }}</p><p>{{ users.1 }}</p><p>{{ user_dict.k1 }}</p><p>{{ user_dict.k2}}</p><table> {% for row in user_list_dict %} <tr> <td>{{ row.id }}</td> <td>{{ row.name}}</td> <td>{{ row.email }}</td> <td> <a>编辑</a> | <a href="/del/?nid=row.id">删除</a> </td> </tr> {% endfor %}
时间: 2024-11-07 21:34:30