Haier123

wsgiref


from wsgiref.simple_server import make_server
from urls import urls
from views import error

def run(request, response):
"""
:param request:跟请求相关的数据
:param response: 跟响应相关的数据
:return: 返回值就是要给前端浏览器的数据
"""
response(\'200 OK\',[])
# print(request) # 自动帮我们处理了所有http协议相关的数据并组织成了一个大字典
target_url = request.get(\'PATH_INFO\') # /login
# if target_url == \'/index\':
# return [b\'from index\']
# elif target_url == \'/login\':
# return [b\'from login\']
# 提前定义一个存储函数名的变量
func = None
for url_tuple in urls: # (\'/index\',index)
if target_url == url_tuple[0]:
func = url_tuple[1] # func = index
break
# 需要注意可能会出现func找不到对应项
if func:
res = func(request)
else:
res = error(request)
return [res.encode(\'utf8\')]


if __name__ == \'__main__\':
# 监听127.0.0.1:8080 一旦有请求 立刻将第三个参数加括号调用
server = make_server(\'127.0.0.1\', 8080, run)
# 启动服务端
server.serve_forever()
 

urls

from views import *

urls = [
(\'/index\', index),
(\'/login\', login),
(\'/reg\', register),
(\'/func\',func),
(\'/get_time\',get_time),
(\'/get_dict\',get_dict),
(\'/get_user\',get_user)
]

views


def index(request):
# return \'index页面\'
with open(r\'templates/index.html\', \'r\', encoding=\'utf8\') as f:
return f.read()


def login(request):
return \'login页面\'


def error(request):
return \'404 error\'


def register(request):
return \'register页面\'


def func(request):
return \'func页面\'


from datetime import datetime


def get_time(request):
# 先获取当前时间
ctime = datetime.now().strftime(\'%Y-%m-%d %X\')
# 读取一个html文件
with open(r\'templates/get_time.html\', \'r\', encoding=\'utf8\') as f:
data = f.read() # 字符串
data = data.replace(\'sdjksajdkjsdjk\', ctime)
return data


from jinja2 import Template

user = {\'username\': \'jason\', \'pwd\': 123, \'hobby\': [\'read\', \'study\']}


def get_dict(request):
with open(r\'templates/get_dict.html\', \'r\', encoding=\'utf8\') as f:
data = f.read()
res = Template(data)
temp = res.render({\'user_dict\': user})
return temp

import pymysql
def get_user(request):
# 1.先获取数据库表数据
conn = pymysql.connect(
host=\'127.0.0.1\',
port=3306,
user=\'root\',
password=\'123\',
database=\'db8\',
charset=\'utf8\',
autocommit=True
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = \'select * from user\'
cursor.execute(sql)
data_list = cursor.fetchall() # [{},{},{},{}]
# 2.文件操作读取文件内容
with open(r\'templates/get_user.html\',\'r\',encoding=\'utf8\') as f:
data = f.read()
# 3.jinja2模块
res = Template(data)
tmp = res.render({\'data_list\':data_list})
return tmp

 

get_user

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">">
</head>
<body>
     <div class="container">
         <div class="row">
             <h1 class="text-center">用户数据</h1>
             <div class="col-md-8 col-md-offset-2">
                 <table class="table table-hover table-striped">
                     <thead>
                         <tr>
                             <th>编号</th>
                             <th>姓名</th>
                             <th>密码</th>
                         </tr>
                     </thead>
                     <tbody>
                     {% for user_dict in data_list %}
                          <tr>
                              <td>{{user_dict.id}}</td>
                              <td>{{user_dict.name}}</td>
                              <td>{{user_dict.pwd}}</td>
                          </tr>
                     {% endfor %}
                     </tbody>
                 </table>


             </div>
         </div>
     </div>

</body>
</html>

 

 此时cmd增加数据,刷新也会同步增加

分类:

技术点:

相关文章:

  • 2021-10-26
  • 2021-05-03
  • 2022-01-24
  • 2021-08-09
  • 2022-12-23
  • 2021-10-08
  • 2022-12-23
  • 2021-07-04
猜你喜欢
  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2021-07-24
  • 2021-11-07
  • 2022-12-23
相关资源
相似解决方案