zoukankan      html  css  js  c++  java
  • 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>
     
  • 相关阅读:
    【BZOJ3489】A simple rmq problem【kd树】
    【BZOJ2716】天使玩偶【kd树】
    Codeforces Round #520 (Div. 2)
    Codeforces Round #521 (Div. 3)
    Educational Codeforces Round 54
    【hdu3507】Print Article 【斜率优化dp】
    【HDU5992】Finding Hotels 【KD树】
    【hdu4347】The Closest M Points 【KD树模板】
    【BZOJ2806】Cheat 【广义后缀自动机+单调队列优化dp+二分】
    SDSC2018 Day1
  • 原文地址:https://www.cnblogs.com/Py-king/p/10587064.html
Copyright © 2011-2022 走看看