• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
谢城
博客园    首页    新随笔    联系   管理    订阅  订阅

手写django框架

1.写服务端

import datetime
import socket
#往网页内添加内容
#方式1
def index():
   #读取网页
   with open(r'D:\untitled\python2\7.9\login.html',"r" ,encoding='utf-8')as rb:
       date=rb.read(2048)
       tim = datetime.datetime.now()
        #替换网页内的####标签
       date=date.replace("####", str(tim))
   return date

#方式2
def login():
       
      import pymysql
      #导入数据库
      conn=pymysql.connect(host='127.0.0.1',user='root',password='xzc123456',db='pycharm',charset='utf8')
       #把查出的的数据以json的格式显示
      cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
      #查询数据库
      sql='select * from class'
      #执行语句
      cursor.execute(sql)
       #获取查询的内容
      res=cursor.fetchall()
      #获取网页
      with open(r'D:\untitled\python2\7.9\login.html','r' ,encoding='utf-8') as rp:
          date=rp.read()
      #导入渲染模板
      from jinja2 import Template
       #获取模板
      template=Template(date)
       #准备数据
      data=template.render(users=res)

      return data




#路由器
webpage=[
        ('index',index),
        ('login',login),
         ]


def run()   
   sk=socket.socket()

    sk.bind(('127.0.0.1',5656))
    sk.listen()

    while True:
        conn, addr=sk.accept()
        # date=conn.recv(2048 * 3)
        date=conn.recv(2048*3)
        #对请求进行分割
        index=str(date).split(' ')[1].split('/')[1]
        conn.send(bytes('HTTP/1.1 200 ok \r\n\r\n', encoding='utf-8'))
        print(index)
        func=None
     #分发请求
    for item in webpage:
         
            if index==item[0]:
               func=item[1]
               break
        if func:
           res=func()
        else:
           res="404 not found"
        #以二进制的方式发送数据
        conn.send(bytes(res, encoding='utf-8'))
        conn.close()

 

posted @ 2019-07-09 20:48  谢城  阅读(164)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3