当前位置: 首页 > news >正文

诸城网站建设公司网站 设计 方案

诸城网站建设公司,网站 设计 方案,成都房地产管理局,选择佛山顺德网站设计1、web框架介绍 Web框架#xff08;Web framework#xff09;是一种开发框架#xff0c;用来支持动态网站、网络应用和网络服务的开发。这大多数的web框架提供了一套开发和部署网站的方式#xff0c;也为web行为提供了一套通用的方法。web框架已经实现了很多功能#xff0…1、web框架介绍 Web框架Web framework是一种开发框架用来支持动态网站、网络应用和网络服务的开发。这大多数的web框架提供了一套开发和部署网站的方式也为web行为提供了一套通用的方法。web框架已经实现了很多功能开发人员使用框架提供的方法并且完成自己的业务逻辑就能快速开发web应用了。浏览器和服务器的是基于HTTP协议进行通信的。也可以说web框架就是在以上十几行代码基础张扩展出来的有很多简单方便使用的方法大大提高了开发的效率。   2、实现简单的web框架 基于socket写一个web应用 第一版本      通过HTTP协议传送过来的信息返回页面 import socketserver socket.socket() server.bind((127.0.0.1,8000)) server.listen(5)while True:conn,addr server.accept()while True:data conn.recv(1024)***data***bGET /index/ HTTP/1.1\r\nHost: 127.0.0.1:8000\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36\r\nAccept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q0.9,und;q0.8,en;q0.7\r\nCookie: csrftokenkzAhOkqkoPdnQuOxI7AQTa8aOmT7g6ebPiwrI0jpQ8m04NmYLkzkFvDtD8febu41; Hm_lvt_080836300300be57b7f34f4b3e97d9111559726342,1559732417\r\n\r\nconn.send(bHTTP/1.1 200 OK\r\n\r\n)页面显示Hello必须遵守http协议返回一个响应头current_path data.decode(utf-8).split(\r\n)[0].split( )[1]/index/if current_path /index/:with open(index.html, rb) as f:conn.send(f.read())else:conn.send(b404)conn.close() 第二版本   根据HTTP传送过来的信息返回相应的页面通过列表保存信息模拟django中的urls通过函数返回数据模拟django中views import socketserver socket.socket() server.bind((127.0.0.1, 8000)) server.listen(5)def index():return indexdef login():return logindef error():return 404urls [(/index/, index), (/login/, login) ]while True:conn, addr server.accept()while True:data conn.recv(1024)***data***bGET /index/ HTTP/1.1\r\nHost: 127.0.0.1:8000\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36\r\nAccept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q0.9,und;q0.8,en;q0.7\r\nCookie: csrftokenkzAhOkqkoPdnQuOxI7AQTa8aOmT7g6ebPiwrI0jpQ8m04NmYLkzkFvDtD8febu41; Hm_lvt_080836300300be57b7f34f4b3e97d9111559726342,1559732417\r\n\r\nconn.send(bHTTP/1.1 200 OK\r\n\r\n)页面显示Hello必须遵守http协议返回一个响应头current_path data.decode(utf-8).split(\r\n)[0].split( )[1]/index/     res Nonefor url in urls:if url[0] current_path:res url[1]()breakelse:res error()conn.send(res.encode(utf-8)) 第三版   将其拆分成start.py   urls.py   views.py import socket import urlsserver socket.socket() server.bind((127.0.0.1, 8000)) server.listen(5)def error():return 404while True:conn, addr server.accept()while True:data conn.recv(1024)***data***bGET /index/ HTTP/1.1\r\nHost: 127.0.0.1:8000\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36\r\nAccept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q0.9,und;q0.8,en;q0.7\r\nCookie: csrftokenkzAhOkqkoPdnQuOxI7AQTa8aOmT7g6ebPiwrI0jpQ8m04NmYLkzkFvDtD8febu41; Hm_lvt_080836300300be57b7f34f4b3e97d9111559726342,1559732417\r\n\r\nconn.send(bHTTP/1.1 200 OK\r\n\r\n)页面显示Hello必须遵守http协议返回一个响应头current_path data.decode(utf-8).split(\r\n)[0].split( )[1]/index/res Nonefor url in urls.urls:if url[0] current_path:res url[1]()breakelse:res error()conn.send(res.encode(utf-8)) import views urls [(/index/, views.index),(/login/, views.login) ] def index():return indexdef login():return login 高级版   使用wsgiref.simple_server的make_server配置web应用 from wsgiref.simple_server import make_server from urls import *def run(env, response)::param env: 请求相关的信息一个处理好的字符串:param response: 响应相关信息:return:response(200 OK, [(username, jason), (password, 123)]) # 固定写法 后面列表里面一个个元祖会以响应头kv键值对的形式返回给客户端current_path env.get(PATH_INFO)func Nonefor url in urls:if current_path url[0]:func url[1]breakif func:res func(env)else:res error(env)return [res.encode(utf-8)]if __name__ __main__:server make_server(127.0.0.1, 8080, run)server.serve_forever() def index(env):return indexdef login(env):return logindef error(env):return 404 from views import * urls [(/index/, index),(/login/, login) ] 终极版   使用jinja2对模板进行替换对数据库进行连接 from wsgiref.simple_server import make_server from urls import *def run(env, response)::param env: 请求相关的信息一个处理好的字符串:param response: 响应相关信息:return:response(200 OK, [(username, jason), (password, 123)]) # 固定写法 后面列表里面一个个元祖会以响应头kv键值对的形式返回给客户端current_path env.get(PATH_INFO)func Nonefor url in urls:if current_path url[0]:func url[1]breakif func:res func(env)else:res error(env)return [res.encode(utf-8)]if __name__ __main__:server make_server(127.0.0.1, 8080, run)server.serve_forever() import time from jinja2 import Template import pymysqldef index(env):return indexdef login(env):return logindef get_time(env):# 先获取当前时间current_time time.strftime(%Y-%m-%d %X)# 打开html文件读取内容返回给客户端with open(rtemplates/get_time.html, r, encodingutf-8) as f:data f.read()# 因为是以r模式打开的文件所有获取到的内容就是一堆字符串res data.replace(time, current_time) # 字符串的替换return resdef get_user(env):with open(rtemplates/get_user.html, r, encodingutf-8) as f:data f.read()tmp Template(data)# 将字典传递给前端页面 前端通过变量名user_dic就可以获取到该字典return tmp.render(user_dic{name: jason, password: 123})def get_db(env):# 连接数据库 获取数据 渲染到前端页面conn pymysql.connect(host127.0.0.1,port3306,userroot,password123,databaseblog,charsetutf8,autocommitTrue)cursor conn.cursor(pymysql.cursors.DictCursor)cursor.execute(select * from userinfo)user_dict cursor.fetchall() # [{},{},{},{}]with open(rtemplates/get_db.html, r, encodingutf-8) as f:data f.read()tmp Template(data)return tmp.render(user_dictuser_dict)def error(env):return 404 error from views import *urls [(/index,index),(/login,login),(/get_time,get_time),(/get_user,get_user),(/get_db,get_db), ] !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body time /body /html !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body p{{ user_dic }}/p p{{ user_dic.name }}/p p{{ user_dic[password] }}/p p{{ user_dic.get(name) }}/p /body /html  转载于:https://www.cnblogs.com/yuyafeng/p/10981836.html
http://www.zqtcl.cn/news/254908/

相关文章:

  • thinkcmf做网站快不快南宁网站建设找哪家好
  • 百度网站类型西部数码官网
  • app和网站哪个难做如何做本地网站
  • 怎么做网站导航栏个性化定制产品
  • 如何做企业网站排名优化工业设计公司logo
  • 怎样制作网站教程中国建设银行总部网站
  • 美食网站建设规划书辽宁建设工程信息网中标通知
  • iis搭建网站教程深圳注册公司条件
  • 怎么优化网站关键词排名api接口开发网站开发
  • 如何提升网站的搜索排名秦皇岛黄页大全秦皇岛本地信息网
  • 学生作业网站笔记本可以做网站吗
  • 网站开发毕设开题报告在线设计网站源码
  • 优普南通网站建设申请注册公司流程
  • 越南网站建设河南企业做网站
  • 优化免费网站建设做网站领券收佣金
  • 网站常用图标素材办公用品十大购物网站排名
  • 网络门户网站站长要维护网站
  • 网上有做衣服的网站有哪些做网站推广怎样才能省钱
  • 网站专题设计欣赏找网站公司做网站是怎样的流程
  • 网站上传后如何设置首页制作网络游戏
  • 外贸接单网站排名榜珠宝行网站建设方案
  • 酒店门户网站建设背景门户网站的发布特点
  • 网站营销与推广汕头澄海
  • php和asp做网站哪个好阿里云wordpress配置
  • 东莞响应式网站建设网络营销策略和营销策略的区别
  • 番禺做网站哪家强合肥网页网站制作
  • 100个免费推广网站阜阳网站建设价格低
  • 广西茶叶学会 网站建设给人做网站能赚钱吗
  • 网站建设的发展目标西湖区住房和城乡建设局网站
  • 佛山市手机网站建设网页制作教程第三版赵丰年pdf