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

网站建设实训意见电子商务网站开发方式

网站建设实训意见,电子商务网站开发方式,个人如何做购物网站 关于支付接口,旭辉网站建设write: 作用: 将chunk中的数据写到输出缓冲区 利用write方法写json数据 我们自己手动序列化json的那种方式Content-Type 的属性值为text-html而我们采用write自动序列化方式,我们的content-type 属性为application/json set_default_headers(): 作用: 在进入HTTP响应方法…write: 作用: 将chunk中的数据写到输出缓冲区 利用write方法写json数据 我们自己手动序列化json的那种方式Content-Type 的属性值为text-html而我们采用write自动序列化方式,我们的content-type 属性为application/json set_default_headers(): 作用: 在进入HTTP响应方法之前被调用可以重新写该方法来设置默认的headers 注意: 在这个HTTP处理方法中使用set_header设置的字段会覆盖set_default_headers()的值这个set_header和set_default_headers()是有执行的先后顺序的,默认那个当然那先就执行了 set_status(status_code,reasonnone): 作用:为响应设置状态码 参数: status_code: 状态码的值,为int类型如果reason的值为none,则状态码必须为正常值 reason String类型描述状态码的词组,比如404 not found 中的not found 重定向 self.redirect(url): 作用: 比如你有时候写index,有时候不写,都能进到首页里面,这就是重定向的作用重定向到url网址 示例: class RedirectHandler(RequestHandler):def get(self):# 直接就重定向了self.redirect(/)self.send_error(status_code 500,**kwargs): 作用: 抛出HTTP错误状态码,默认为500tornado会调用write_error()方法进行处理对应Django里面自定义404一样 write_error(status_code,**kwargs): 作用: 用来处理send_error抛出的错误信息,并返回给浏览器错误界面 示例: class ErrorHandler(RequestHandler):def write_error(self, status_code: int, **kwargs: Any) - None:if status_code 500:self.write(服务器内部错误500了)elif status_code 404:self.write(资源不存在)else:self.write(我也不知道是啥错误)def get(self):# 直接就重定向了flag self.get_query_argument(flag)if flag 0:print(有错误)self.send_error(500)# 这里抛出错误,下面就不会执行了print(没毛病)self.write(you are right!)路由的反向解析 这个tornado里面的比Django的反向解析还要简单一点 给路由起个名字,便于url改变后,跳转链接失效 应用端 class Application(tornado.web.Application):def __init__(self):handlers [(r/, index.IndexHandler),(r/sunck, index.SunckHandler,{name:victor,age:19}),# 状态码(r/status, index.StatusHandler),# 重定向(r/index, index.RedirectHandler),# 错误处理# iserror?flag2# 如果等于0就说明,有错误,不等于0就说明没有错误(r/iserror, index.ErrorHandler),tornado.web.url(r/kaige,index.KaigeHandler,namekaige),]super(Application,self).__init__(handlers)视图函数 class IndexHandler(RequestHandler):def get(self):self.write(main page info tornado!)self.write(br)url self.reverse_url(kaige)self.write(a href%s去另一个页面/a % (url))# self.write(a hrefurl去另一个页面/a)tornado.Web.RequestHandler 利用HTTP协议向服务器传递参数 提取uri的特定部分 http://127.0.0.1:8080/good/nice/handsome/cool 实例代码,app部分 (r/good/(\w)/(\w)/(\w), index.GoodHandler), (r/good/(?Pp1\w)/(?Pp3\w)/(?Pp2\w), index.GoodHandler),视图函数部分 class GoodHandler(RequestHandler):def get(self,p1,p3,p2):self.write(GoodHandler kaige !)self.write(br)self.write(p3)self.write(br)self.write(p2)self.write(br)self.write(p1) 查询字符串(GET方式传递参数) http://127.0.0.1:8080/zhangmanyu?a1b2c4类型 这里有一个方法 def get_query_argument(self,name: str,default: Union[None, str, _ArgDefaultMarker] _ARG_DEFAULT,strip: bool True,) - Optional[str]:参数 name: 从get请求参数中返回指定参数的值如果出现同名参数,理论上这个方法会返回最后一个值 default 如果我们设置了为未传递name参数,它会返回默认的值 strip 表示是否过滤掉两边的空白字符默认为True,过滤 http://127.0.0.1:8080/zhangmanyu?a1a2c4类型 一般情况下,很少出现这种情况的def get_query_arguments(self, name: str, strip: bool True) - List[str]:参数: 同上 请求体携带数据(POST方式传递参数) 这个厉害了,比Django方便,不用在定义一路由函数了,直接在类里面加一个方法就就行了原型在这里 def get_body_argument(self,name: str,default: Union[None, str, _ArgDefaultMarker] _ARG_DEFAULT,strip: bool True,) - Optional[str]:既可以获取GET请求,也可以获取POST请求 直接就上原型就OK了,你不仅要学会举一反三,还要自己进行拓展原型在这里 def get_argument( # noqa: F811self,name: str,default: Union[None, str, _ArgDefaultMarker] _ARG_DEFAULT,strip: bool True, ) - Optional[str]:其实有时候,有的结构,看源码才能理解的更加的深刻还有一个多个的,也是这么回事儿 def get_arguments(self, name: str, strip: bool True) - List[str]:在HTTP报文头中,增加自定义的字段 request对象 作用 存储了关于请求的相关信息 比如: HTTPServerRequest(protocolhttp, host127.0.0.1:8080, methodGET, uri/zhuyin, versionHTTP/1.1, remote_ip127.0.0.1) 属性 method: HTTP请求的方式host: 被请求的主机名(服务器的主机名)uri: 请求的完整资源地址,包括路径和get查询的参数部分path: 请求的路径部分query: 请求参数部分version: 使用的HTTP版本headers: 请求的协议头,字典类型body: 请求体数据(POST)remote_ip: 客户端的ip地址files: 用户上传的文件,字典类型 tornado.httputil.HTTPFile对象 功能:在我们上传文件中才能看到他作用: 是收到的文件对象 属性: filename: 文件的实际名字body: 文件的数据实体content-type: 上传文件的类型 文件上传 首先,先要滤清一个数据结构,就是request.file对象的数据结构 一个request.file对象的结构示例 {file: [{filename: a.txt,body: bsuck is a wonderful man,content_type: text/plain},{filename: reg.md,body: bx9xa0,content_type: application/octet-stream}]img: [{filename: a.img,body: bas\dfhg\ahhf\a\\h\ahfh\af,content_type: text/plain}] }然后,用循环来进行遍历! class UpFileHandler(RequestHandler):def get(self):self.render(upfile.html)def post(self):self.write(上传成功!)contents self.request.filesfor content in contents:fileArr contents[content]for fileObj in fileArr:file_path os.path.join(BASE_DIR,upfile/fileObj.filename)with open(file_path,wb) as f:f.write(fileObj.body)print(文件写入成功)我知道,要是看不懂那就加一点批注呗! 导入系统操作模块,用于存储接受的文件 import os # 导入BASE_DIR,定位到服务器中的绝对路径 from config import BASE_DIR from tornado.web import RequestHandlerclass IndexHandler(RequestHandler):def get(self):self.write(main page info tornado!)class UpFileHandler(RequestHandler):用于上传文件的视图类,其中包含显示表单的get方法和用于处理上传的POST方法# get方法,加载表单模板def get(self):self.render(upfile.html)# 文件上传指定是POST请求啦def post(self):# 用于接收上传的信息self.write(上传成功!)# 通过request.files对象来获取所有文件对象内容contents self.request.files# 遍历最大的字典,拿到没个name类型的字典的键# 其中content是字典中的键,比如file,imgfor content in contents:# 通过键获取值,拿到相同name的文件列表# 这个filearr,就是一个listfileArr contents[content]# 遍历文件列表# 这个fileObj又是一个dict字典类型for fileObj in fileArr:# 定义存储路径# 通过BASE_DIR来获取服务器的绝对位置# 其中通过这个fileObj的字典的filename键,# 来获取文件名字,来定义存储路径的文件名称file_path os.path.join(BASE_DIR,upfile/fileObj.filename)# 写入文件with open(file_path,wb) as f:# 文件的内容就是bodyf.write(fileObj.body)# TODO 这里还需要处理的就是,用户上传同名文件# 导致文件重新在服务器中覆盖的问题print(文件写入成功)相似文章 tornado学习笔记day01 tornado学习笔记day02 tornado学习笔记day03 tornado学习笔记day04 tornado学习笔记day05 tornado学习笔记day06 tornado学习笔记day07 tornado学习笔记day08
http://www.huolong8.cn/news/83962/

相关文章:

  • 做任务的网站购物网站APP
  • 南通建设局网站学编程的基础要具备什么
  • wordpress网站前端企业网站主页素描模板
  • 兴平做网站东莞网站建设那家专业
  • 动漫网站的设计与实现以网红引流促业态提升
  • 网站模板 北京公司建英文产品网站
  • 国外设计网站pinterest网址wordpress 通用代码
  • 网站流程示意湖南建设人力资源网官网
  • 哈密网站制作公司-哈密网站建设|哈密网络公司|哈密做网站网站挂到国外服务器
  • 怎么做网站手机版专业做网络推广的公司
  • 爱站工具包怎么使用网站建设策划书
  • 怎么做百度网站验证码抖音关键词排名优化
  • 国外的ui设计思想网站西部数码网站管理助手 2008
  • 上海企业网站制作报价做动画的动作库网站
  • 可以把网站服务器放在哪里网络营销公司名字大全
  • 不用付费不用登录的网站内蒙网站开发
  • 公司网站空间要多大wordpress链接 数据库
  • 苏州市建设职业中心网站买了winhost网站空间在哪里登陆
  • 益阳网站建设方案如何开网上商城
  • 东莞做汽车有没有买票的网站深圳定制网站制作招聘网
  • 做电商要关注哪些网站吴桥县做网站
  • 上海网站建设排名公司哪家好网页制作视频教程到哪里下载
  • 自己做的网站怎么让别人看到查看邮箱注册了哪些网站
  • 怎么做提升自己的网站wordpress中文企业主题 下载
  • 广州公司排名100强百度 seo排名查询
  • 网站管理和维护的主要工作有哪些沙井网站优化
  • 企业网站的建设意义是什么网站建设免费加盟代理
  • 支付的网站建设费整么做账浅笑云虚拟主机
  • 做外发的网站推广普通话心得体会
  • 个人网站怎么自己备案青岛网站建设-中国互联