Django存储图片和分页+搜索

**

Django添加图片

变量起的比较随意请大家见谅!!!

**
在setting.py里配置

STATICFILES_DIRS=(
    os.path.join(BASE_DIR,'static'),
)

注意:static要创建在与项目同级目录下
我写的是在static下创建img文件夹用来储存图片

views.py视图中写存储图片代码

from naoapp.settings import STATICFILES_DIRS    #导入setting.py 静态配置

def comput(request):
	if request.method=='GET':
		 return render(request,'comput.html',locals())
    if request.method=='POST':
        img=request.FILES.get('img')
        *if img:
            imgs = os.path.join(STATICFILES_DIRS[0],'img/'+img.name)
            with open(imgs,'wb') as f:
                f.write(img.read())*    #标注星号的四行代码用于写入读取图片,如果粘贴把星号删掉
                v =models.Comfen.objects.get(name=comfen)
                models.Computer.objects.create(
                   img=('img/'+img.name),   # 往数据库里存储图片
                )
                return redirect('/')   #跳转到首页方便查看


创建template文件夹,与static同级
创建html


{% load staticfiles %}    #先引用静态文件


  
#获取图片一定要写这个 enctype="multipart/form-data" {% csrf_token %} #查看图片 # i是for循环的i

分页+搜索

视图view里写入

from django.core.paginator import PageNotAnInteger,EmptyPage,Paginator     #导包


def index(request):
    b = models.表名.objects.all()
    p = Paginator(b,2)
    id = request.GET.get('id')
    try:
        c = p.page(id)
    except EmptyPage:
        c = p.page(1)
    except PageNotAnInteger:
        c = p.page(1)
    if request.method=='POST':
        name = request.POST.get('name')
        if name:
            n = models.Computer.objects.filter(name__icontains=name)
            c = n
            return render(request,'index.html',locals())
    return render(request,'index.html',locals())

注意分页与搜索变量名必须一致才可进行搜索

html中


    
        {% csrf_token %}
    
      #搜索

#分页
    {% if c %}
            
            {% for i in c %}    #变量名是获取每页id的变量,不是简单的查找所有的变量,要注意
                
                    
                
            {% endfor %}
            
{{i.name}} {{i.price}} {{i.size}} {{i.cpu}}
{% if c.has_previous %} 上一页 {% endif %} {% for i in p.page_range %} {{i}} {% endfor %} {% if c.has_next %} 下一页 {% endif %} {% else %} 没有查询数据 {% endif %}

你可能感兴趣的:(Django)