纯手撸web框架

heart / 2024-02-28 / 原文

纯手撸web框架

(1)纯手撸


(2)基于wsgiref模块


(3)wsgiref优化版

server:


urls:


views:


动静态网页

(1)静态网页

  • 页面上的数据是直接写死的 万年不变

(2)动态网页

  • 数据是实时获取的
  • eg:
1.后端获取当前时间展示到html页面上
2.数据是从数据库获取的展示到html页面上
  • 后端:
def get_time(request):
    current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    with open(r'templates/mytime.html', 'r', encoding='utf-8') as f:
        data = f.read()
    data = data.replace('asdasdasdasd', current_time)
    return data
  • 前端:
<body>
<h1>我是一个html</h1>
asdasdasdasd
</body>

(3)jinja2模版语法

  • jinja2支持将数据传递到html页面并提供近似于后端的处理方式简单快捷的操作数据
pip install jinja2
  • 后端:
def get_dict(request):
    user_dict = {'name': 'heart', 'age': 18, 'gender': '男', 'hobby': 'music'}
    with open(r'templates/mydict.html', 'r', encoding='utf-8') as f:
        data = f.read()
    temp = Template(data)
    res = temp.render(user=user_dict)
    # 给mydict.html传了一个值 页面上通过变量名user就能够拿到user_dict
    return res
  • 前端:
<body>
{{user}}
{{user.name}}
{{user.age}}
{{user.gender}}
<!-- {'name': 'heart', 'age': 18, 'gender': '男', 'hobby': 'music'} heart 18 男 -->
</body>

Django

(1)创建Django文件

django-admin startproject 文件名

(2)启动Django文件

python manage.py runserver

image