需要企业网站开发,做网页的软件w,flash全站案例网站预览,知名企业网站建设第一种思路#xff1a; 根据博文 Djano的request.META是什么#xff1f;的研究成果#xff0c;先判断有无键HTTP_SEC_CH_UA_MOBILE#xff0c;如果没有#xff0c;再去按博文 网站如何判断请求是来自手机-移动端还是PC-电脑端#xff1f;如何让网站能适应不同的客户端 根据博文 Djano的request.META是什么的研究成果先判断有无键HTTP_SEC_CH_UA_MOBILE如果没有再去按博文 网站如何判断请求是来自手机-移动端还是PC-电脑端如何让网站能适应不同的客户端 中判断user-agent中的关键字来判断。 以下是判断有无键HTTP_SEC_CH_UA_MOBILE的代码
def ismobile(requestmeta):if HTTP_SEC_CH_UA_MOBILE in requestmeta:print(exist)else:print(not exist)这种思路经实测很多浏览器都没有键HTTP_SEC_CH_UA_MOBILE比如PC上的搜狗浏览器、移动端上的QQ浏览器、傲游浏览器同没有。所以我决定不用这种思路。
第二种思路 直接去判断user-agent有关移动端的关键词就根据 博文 网站如何判断请求是来自手机-移动端还是PC-电脑端如何让网站能适应不同的客户端 中提供的关键词来判断。
不难很快就实现了并且经测试很健壮。 views.py中的代码如下
# -*- coding: utf-8 -*-from django.shortcuts import render # 默认导入的模块
import app1.myf1def index(request):meta1 request.METAmobile_flag app1.myf1.ismobile(meta1)if mobile_flag 0:print(it is PC client)return render(request, index_pc.html) # 将渲染结果输出到index_pc.html模板中elif mobile_flag 1:print(it is Mobile client)return render(request, mobile_temp.html) # 因为还没有开发移动端所以暂时用mobile_temp.html代替else:print(mobile_flag Error)return render(request, index_pc.html) # 此种异常情况下将渲染结果输出到index_pc.html模板中
myf1.py中的代码如下
# -*- coding: utf-8 -*-def ismobile(requestmeta):if HTTP_USER_AGENT in requestmeta: # 判断存不存在是为了提高程序健壮性,万一哪个傻冒客户端没有USER_AGENT呢useragent1 requestmeta[HTTP_USER_AGENT]useragent1 useragent1.lower() # 把useragent1里所有大写转换为小写if mobile in useragent1 or android in useragent1 or phone in useragent1 or ipad in useragent1:return 1else:return 0 # 如果不包含上面几个字符串则认为是PC端。else:print(Error,HTTP_USER_AGENT is not exist)return 0 # 此种异常情况认为是PC端