用python写个类似youtube的网站_Python实现手写一个类似django的web框架示例

本文实例讲述了Python实现手写一个类似django的web框架。分享给大家供大家参考,具体如下:

用与django相似结构写一个web框架。

启动文件代码:

from wsgiref.simple_server import make_server #导入模块

from views import *

import urls

def routers(): #这个函数是个元组

URLpattern=urls.URLpattern

return URLpattern #这个函数执行后返回这个元组

def application(environ,start_response):

print("ok1")

path=environ.get("PATH_INFO")

print("path",path)

start_response('200 OK',[('Content-Type','text/html')])

urlpattern=routers() #讲函数的返回值元组赋值

func=None

for item in urlpattern: #遍历这个元组

if path==item[0]: #item[0]就是#路径后面的斜杠内容

func=item[1] #item[1]就是对应的函数名

break

if func: #如果路径内容存在函数就存在

return func(environ) #执行这个函数

else:

print("ok5")

return [b"404"] #如果不存在就返回404

if __name__=='__main__':

print("ok0")

t=make_server("",9700,application)

print("ok22")

t.serve_forever()

urls.py文件代码:

from views import *

URLpattern = (

("/login", login),

("/alex", foo1),

("/egon", foo2),

("/auth", auth)

)

views.py文件代码:

def foo1(request): # 定义函数

f=open("templates/alex.html","rb") #打开html 以二进制的模式

data=f.read() #读到data里

f.close() #关闭

return [data] #返回这个data

def foo2(request):

f=open("templates/egon.html","rb")

data=f.read()

f.close()

return [data]

def login(request):

f=open("templates/login.html","rb")

data=f.read()

f.close()

return [data]

def auth(request):

print("+++",request)

user_union,pwd_union=request.get("QUERY_STRING").split("&")

_,user=user_union.split("=")

_,pwd=pwd_union.split("=")

if user=='Yuan' and pwd=="123":

return [b"login,welcome"]

else:

return [b"user or pwd is wriong"]

templates目录下的html文件:

alex.html

Title
alex

login.html

Title

登录页面

姓名:

密码:

下面如图,是目录结构

访问ip+prot+路径 即为相应的html,功能简单,只是为了熟悉django

希望本文所述对大家Python程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值