利用通用视图手写底层代码读取
相关代码
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^staticread/', include('staticread.urls'))
]# coding=utf-8
from django.conf.urls import url, include
import views
urlpatterns = [
# IndexView是自定义的视图处理类,需要继承django.views.View,可以重写get/post方法处理浏览器请求;as_view()是固定写法
url(r'^$', views.IndexView.as_view()),
# 原生代码读取静态资源文件
url(r'^read/.*$', views.ReadImg.as_view()),
]# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.http import HttpResponse, Http404, FileResponse
from django.shortcuts import render
# Create your views here.
from django.views import View
# 一定要继承django.views.View
class IndexView(View):
def get(self, request, *args, **kwargs):
return HttpResponse('Get请求')
def post(self, request, *args, **kwargs):
return HttpResponse('Post请求')
class StaticView(View):
def get(self, request, *args, **kwargs):
return render(request,'show.html')
class ReadImg(View):
def get(self,request,*args,**kwargs):
import re
filepath = request.path
m = re.match(r'^/staticread/read/(.*)$',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
# def post(self,request,*args,**kwargs):
# return render(request,'show.html')http://127.0.0.1:8000/staticread/read/1.png


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
urlpatterns = [
# IndexView是自定义的视图处理类,需要继承django.views.View,可以重写get/post方法处理浏览器请求;as_view()是固定写法
url(r'^$', views.IndexView.as_view()),
# 原生代码读取静态资源文件
url(r'^read/.*$', views.ReadImg.as_view()),
url(r'^demo/.*$', views.StaticView.as_view()),
]
Html页面

结果

over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有