• 2019.03.24 视图和静态读取


    基于函数的视图(FBV)function base views

    使用方法

    配置URL

    from django.conf.urls import url
    from django.contrib import admin
    import views
    urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^$', views.IndexView.as_view()),
    ]

    创建视图


    #coding=utf-8
    from django.http import HttpResponse
    from django.views import View

    class IndexView(View):
      def get(self,request,*args,**kwargs):
          return HttpResponse('Get请求')


      def post(self,request,*args,**kwargs):
          return HttpResponse('Post请求')


    ​静态文件读取

    底层实现

    1. 项目中创建static文件夹(imgs/css/js)

    2. 配置URL

    3. 创建视图

    配置URL

    from django.conf.urls import url
    from django.contrib import admin
    import views
    urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^hello/.*$', views.ReadImg.as_view()),
    ]

    创建视图


    #coding=utf-8
    from django.http import HttpResponse, Http404, FileResponse
    from django.views import View
    import jsonpickle

    class ReadImg(View):
      def get(self,request,*args,**kwargs):
          import re
          filepath = request.path
          m = re.match(r'^/hello/(.*)$',filepath)
          path = m.group(1)

          import os
          filedirs = os.path.join(os.getcwd(),'static/imgs',path)
          print filedirs
          if not os.path.exists(filedirs):
              raise Http404()

          response = FileResponse(open(filedirs,'rb'),content_type='image/png')
          return response

    Django读取静态文件方式

    • settings.py文件中设置

    STATIC_URL = '/static/'

    STATICFILES_DIRS = [
      os.path.join(BASE_DIR,'static/imgs'),
      os.path.join(BASE_DIR,'static/css'),
      os.path.join(BASE_DIR,'static/js'),

    ]

    配置URL


    from django.conf.urls import url
    from django.contrib import admin
    import views
    urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^index.html$',views.index_view)
    ]

    创建视图


    def index_view(request):
      return render(request,'index.html')

    创建模板


    {% load staticfiles %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>

      <img src="{% static '1.png' %}"/>

    </body>
    </html>
     
  • 相关阅读:
    移动端页面开发
    全屏滚动-jQuery插件实现
    面向对象技术
    JS堆栈与拷贝
    util 学习
    node.js 中的全局对象
    在webstrorm中配置好es6 babel【更新:在webstorm中配置.vue和.vue文件中支持es6】
    与后台进行连接,mysql模块 第六篇
    在node.js中使用ejs的demo 第五篇
    项目中经常用到的reset.css文件
  • 原文地址:https://www.cnblogs.com/Py-king/p/10587064.html
Copyright © 2020-2023  润新知