手寫django框架

2022-09-15 19:57:14 字數 1765 閱讀 1193

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)

#對請求進行分割

#分發請求

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()

Django手寫分頁

def get self,request,args,kwargs 獲取當前頁碼 pg int request.get.get page 1 obj student.objects.all order by id 建立分頁器物件 page obj paginator obj,3 try 獲取當前頁碼數...

手寫SpringMVC框架

1.編寫 annotationhandleservlet,作為自定義註解的核心處理器以及負責呼叫目標業務方法和處理使用者請求的 處理器。2.當服務啟動的時候annotationhandleservlet初始化init 方法,進行包掃瞄,把controller類中的方法上的註解與類進行map對映儲存。...

Django 框架 Django介紹

django 使用 python 語言寫的開源 web 開發框架,並遵循 mvc 設計。勞倫斯出版集團為了開發以新聞內容為主的 而開發出來了這個框架。django 今年來應用越來越廣泛。django 的主要目的是簡便 快速的開發資料庫驅動的 它強調 復用,多個元件可以很方便的以 外掛程式 形式服務於...