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

企业网站的优缺点建设工程消防验收网站

企业网站的优缺点,建设工程消防验收网站,宜昌网站建设哪家好,鹿寨建设局网站目录 三、视图 3.1、文件or文件夹 3.2、相对和绝对导入urls 3.3、视图参数requests 3.4、返回值 3.5、响应头 3.6、FBV和CBV FBV 四、静态资源 4.1、静态文件 4.2、媒体文件 五、模板 5.1、寻找html模板 5.2、模板处理的本质 5.3、常见模板语法 5.4、内置模板函…目录 三、视图 3.1、文件or文件夹 3.2、相对和绝对导入urls 3.3、视图参数requests 3.4、返回值 3.5、响应头 3.6、FBV和CBV FBV 四、静态资源 4.1、静态文件 4.2、媒体文件 五、模板 5.1、寻找html模板 5.2、模板处理的本质 5.3、常见模板语法 5.4、内置模板函数 5.5、自定义模板功能 filter simple_tag inclusion_tag 5.6、继承和母版 5.7、模板的导入 六、Django中间件 6.1、原始方式 6.2、MiddlewareMixin建议 6.3、MiddlewareMixin多个 三、视图 3.1、文件or文件夹 如果你是开发一个功能较少的小项目一个views.py文件足够了。 但如果你要开发的业务比较复杂功能比较多那你就要创建个文件夹来管理很多视图文件了。 3.2、相对和绝对导入urls 主urls.py from django.urls import path,includeurlpatterns [path(api/, include(apps.api.urls)), ] app/urls.py from django.contrib import admin from django.urls import path from apps.api.views import account # 绝对路径导入 from apps.api.views import auth # 绝对路径导入 from .views import order # 相对路径导入urlpatterns [path(login/, account.login),path(auth/, auth.auth),path(order/, order.selectOrder), ]注意不要在项目根目录做相对导入。 尽量我们就用绝对导入。 3.3、视图参数requests requests是一个对象存放了浏览器给咱们发过来的所有内容所以含有 - 请求相关所有的数据 当前访问的url、请求方式、... - django额外添加的数据 from django.shortcuts import HttpResponsedef login(request):# 1.当前URL /api/login/print(request.path_info)# 2.URL传递的参数print(request.GET)print(request.GET.get(age))# 3.请求方式 GET/POSTprint(request.method)# 4.如果post请求传递请求体原始数据print(request.body) # b{code:083Sjmll2yla694F3bll2DguCM2SjmlG,unionId:oP6QCsyT_9bk1dfSaVf0GEV5Y-yE} bv1123v2456# 4.1 请求体请求头 bv1123v2456 content-type:application/x-www-form-urlencoded# 当前端传的数据结构是bv1123v2456并且content-type:application/x-www-form-urlencoded django才会自动为我们将body里的信息解析到POST中print(request.POST)print(request.POST.get(v1))print(request.POST.get(v2))# 4.2 请求体请求头 文件print(request.FILES) # 文件格式 multipart/form-dataprint(request.FILES.get(n1))print(request.FILES.get(n2))# 5.请求头# {Content-Length: , Content-Type: text/plain, Host: 127.0.0.1:8000, Connection: keep-alive, Cache-Control: max-age0, Sec-Ch-Ua: Not A;Brand;v99, Chromium;v102, Google Chrome;v102, Sec-Ch-Ua-Mobile: ?0, Sec-Ch-Ua-Platform: macOS, Upgrade-Insecure-Requests: 1, User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36, Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3;q0.9, Sec-Fetch-Site: none, Sec-Fetch-Mode: navigate, Sec-Fetch-User: ?1, Sec-Fetch-Dest: document, Accept-Encoding: gzip, deflate, br, Accept-Language: zh-CN,zh;q0.9,en;q0.8,zh-TW;q0.7, Cookie: csrftokenCdidpKSGbLxzmOXnbmlkvrZep1eJmKLAA81T73UjcjxEnMOa4YOZqtc849AkYfUy}print(request.headers)# 5.1 请求头有个特殊的cookie# request.headers[cookie] # csrftokenCdidpKSGbLxzmOXnbmlkvrZep1eJmKLAA81T73UjcjxEnMOa4YOZqtc849AkYfUy;sessionxxxx# {csrftoken: CdidpKSGbLxzmOXnbmlkvrZep1eJmKLAA81T73UjcjxEnMOa4YOZqtc849AkYfUy}print(request.COOKIES)# 6.requests中其他值print(request.resolver_match)return HttpResponse(login) 3.4、返回值 HttpResponse JsonResponse render redirect from django.shortcuts import HttpResponse, redirect, render from django.http import JsonResponsedef auth(request):passdef login(request):# 1、字符串/字节/文本数据图片验证码# return HttpResponse(login)# 2、JSON格式前后端分离、app小程序后端、ajax请求# data_dict {status: True, data: [11, 22, 33]}# return JsonResponse(data_dict)# 3、重定向# return redirect(https://www.baidu.com)# return redirect(http://127.0.0.1:8000/api/auth/)# return redirect(http://127.0.0.1:8000/api/auth/)# return redirect(/api/auth/)# return redirect(/api/auth/) # name## from django.urls import reverse# url reverse(auth)# return redirect(url) # name# return redirect(auth)# 4、渲染# - a.找到 login.html 并读取的内容问题去哪里找# - 默认先去settings.TEMPLATES.DIRS指定的路径找。公共# - 按注册顺序每个已注册的app中找他templates目录去这个目录中寻找login.html# - 一般情况下原则哪个app中的模板就去哪个app中寻找。# - b.渲染替换得到替换完成的字符串# - c.返回浏览器return render(request, api/login.html) # 这里api代表是api模块下的templates/api文件夹里面存放着login.html 一般这么配置在根目录下创建templates文件夹里面存放各种html文件。 3.5、响应头 from django.shortcuts import HttpResponse, redirect, render from django.http import JsonResponsedef login(request):res HttpResponse(login)res[xx1] hahahares[xx2] hahahares[xx3] hahahares.set_cookie(k1,aaaaaaaa)res.set_cookie(k2,bbbbbb)return res 而响应体其实就是我们返回的字符串login如果你返回html那么请求体就是你html文件的代码。 3.6、FBV和CBV FBV视图用函数的形式编写。目前主流 CBV视图用类的形式编写。 FBV urls.py urlpatterns [path(users/, views.UserView.as_view()) ] views.py from django.shortcuts import render, HttpResponse, redirect from django.views import Viewclass UserView(View):# 请求方式GET形式def get(self, request):pass# 请求方式POST形式def post(self, request):pass 其实本质上这段代码和下面这段代码一模一样 def users(request):if request.method GET:res HttpResponse(GET请求)return reselse:res HttpResponse(POST请求)return res 四、静态资源 静态资源 开发需要css、js、图片。 - 根目录的 /static/ - 已经app目录下载 /static/ 文件夹下 媒体文件用户上传的数据(excel/pdf/video) - 根目录的 /media/ 4.1、静态文件 INSTALLED_APPS [# django.contrib.admin,# django.contrib.auth,# django.contrib.contenttypes,# django.contrib.sessions,# django.contrib.messages,django.contrib.staticfiles,apps.api.apps.ApiConfig,apps.web.apps.WebConfig, ] ...STATIC_URL /static/ STATICFILES_DIRS (os.path.join(BASE_DIR, static), ) 顺序先去项目根目录找static如果没有再按注册组件的顺序去找如上先去api模块下找static如果没有再去web模块下找。 多app开发各自app的图片放在各自 /static/app名字/。。。例如api模块就是apps/api/static/api/1.jpgweb模块就是apps/web/static/web/1.jpg 在开发过程中 禁止 img src/static/api/1.png 建议 {% load static %}!DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body h1登录页面/h1 a href/xxx/xxxxx/调换dao xx/a a href{% url login %}跳转/aimg src{% static api/1.png %}/body /html 4.2、媒体文件 主urls.py from django.contrib import admin from django.urls import path, re_path, include from django.conf.urls.static import static from django.conf import settingsfrom apps.api import views# 很多功能很多URL urlpatterns [path(api/, include(apps.api.urls)), ] static(settings.MEDIA_URL, document_rootsettings.MEDIA_ROOT) 五、模板 5.1、寻找html模板 先问大家一个问题 TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates)],APP_DIRS: True,OPTIONS: {context_processors: [django.template.context_processors.debug,django.template.context_processors.request,# django.contrib.auth.context_processors.auth,# django.contrib.messages.context_processors.messages,],},}, ] 当我们在settings.py文件配置了DIRS那么就去哪里找一般这么配置都是去项目根目录找templates文件夹。 如果配置的DIRS路径没有找到那就继续去每一个注册的app下的templates找顺序是按注册顺序。 优先去项目根目录 每个已注册的app的templates目录找。 如何选择 简单的项目模板都放在根目录。 复杂的项目模板放在各自的app中公共部分放在templates目录。 5.2、模板处理的本质 渲染完成后生成了字符串再返回给浏览器。 return render(request, app01/index.html) 的本质步骤 打开app01/index.html文件读取内容渲染完成得到一个渲染完成的文本将文本返回给浏览器 其实html文件的作用就是展示是我们django把渲染好的字符串一口气返回给html文件然后进行展示我们可以将index.html改为index.txt发现也是好使的。 我们接下来分几段代码来验证模板处理的本质 代码段1 结果毫无疑问可以弹出100。 代码段2 这时我们发现不但没有弹出理想的“红茶”控制台还报错了。 我们打开网页源代码看一眼... 从这里就能看出是django先读取html代码将{{}}占位符都替换完后再返回到html页面的这里我们加上引号即可。 代码段3 这又表明了模板处理的本质django先读取html页面代码将所有的占位符都替换为真实的数据它不管你外引的js文件它只管当前页面的占位符。 5.3、常见模板语法 class Person(object):def __init__(self, name, age):self.name nameself.age agedef getData(self):return 利拉德def index(request):context {n1: 绿茶, # 字符串n2: [11, 22, 33, 44], # 列表n3: { # 字典name: 编程抗氧化,age: 29},n4: Person(德罗赞, 20) # 对象}return render(request, app01/index.html, context) 5.4、内置模板函数 5.5、自定义模板功能 filter 第一步确保你的app已经在settings.py中注册了 第二步在你的app这里是app01创建templatetags文件夹 注意只能叫templatetags。 第三步在templatetags文件夹下创建py文件并编写自定义代码 from django import templateregister template.Library()register.filter() def myfunc(value):return value.upper() 第四步index.html使用你定义的函数 simple_tag inclusion_tag 5.6、继承和母版 5.7、模板的导入 六、Django中间件 中间件说白了其实就是类我们请求经过中间件类里的方法。 6.1、原始方式 第一步根目录创建middlewares/md.py文件存放我们的中间件 class MyMd(object):def __init__(self, get_response):self.get_response get_responsedef __call__(self, request):# 进来print(来了)response self.get_response(request)# 出去print(走了)return response 第二步注册此中间件 第三步在某个app下的views.py随便创建一个方法 def login(request):print(函数)return HttpResponse(登录) 第四步测试并看打印信息 这倒有点像Java里的拦截器... 6.2、MiddlewareMixin建议 from django.utils.deprecation import MiddlewareMixinclass MyMd(MiddlewareMixin):def process_request(self, request):print(来了)def process_response(self, request, response):print(走了)return response 6.3、MiddlewareMixin多个 执行结果是 md1来了 md2来了 md3来了 函数 md3走了 md2走了 md1走了
http://www.hkea.cn/news/14351444/

相关文章:

  • 网站开发 自我评价加强纪检监察网站建设
  • 网站右边上下浮动代码展台设计网站推荐
  • 宁波网站建设-中国互联wordpress 替换字体颜色
  • 做网站内容图片多大私人网站服务器搭建
  • 优质网站建设方案叫别人做网站需要注意什么问题
  • 长春做官网的公司电子商务seo实训总结
  • 网站更换域名备案吗室内装饰设计装修
  • 网站建设项目管理绩效情况分析网站运营者网址
  • 网站的jsp页面怎么做自贡在线最新消息
  • 网站优化助手阿里云 个人网站 名称
  • 买CAD设计图做的网站cnzz统计
  • 服务器可以做自己网站用吗弹幕播放器 wordpress
  • 做ppt需要知道网站江宁区住房和城乡建设局网站
  • 完美网站建设对网站政务建设的建议
  • 嘉兴的信息公司网站wordpress连接mysql拒绝
  • 个人 网站可以做导航吗石家庄新钥匙网站
  • 网站建设 江苏鸿蒙os用什么语言开发app
  • 网站建设技术实现难点Wordpress 百度多久收录
  • dede小游戏php网站源码163 com免费邮箱注册
  • 网站开发的缺点阿里云服务器上如何做网站
  • 主流的网站开发技术网站设计需要那些模块
  • 淘宝店网站建设网龙网络品牌推广
  • 北京的广告公司网站建设wordpress 关闭畅言
  • 内部网站 备案商标注册查询一览表
  • 手机钓鱼网站制作2019还有人做网站淘宝客吗
  • 网站备案在哪里备案合肥城乡建设网站首页
  • 海口 网站 制作强大的wordpress主题
  • 网站改版方案怎么写江西做网站多少钱
  • 北京网站seo技术厂家河北网络推广
  • 厚街网站建设价格做专利费减是哪个网站