python注册页面_python Django注册页面显示头像

python Django注册页面显示头像(views)

def register(request):

'''

注册

:param request:

:return:

'''

if request.method=='GET':

obj = Register(request)

return render(request, 'register.html', {'obj': obj})

else:

obj = Register(request,request.POST,request.FILES)

if obj.is_valid():

print(obj.cleaned_data)

yzms_list = obj.cleaned_data.pop('yzm')

yzms1_list = obj.cleaned_data.pop('password2')

users=models.UserInfo.objects.filter(username=obj.cleaned_data['username'])

emails=models.UserInfo.objects.filter(email=obj.cleaned_data['email'])

if users or emails:

return render(request, 'register.html', {'obj': obj,'mmg':'用户已存在!','eml':'邮箱已注册!'})

else:

if avatar_lis:

obj.cleaned_data['avatar']=avatar_lis[-1]

models.UserInfo.objects.create(**obj.cleaned_data)

return redirect('/login/')

else:

obj.cleaned_data['avatar'] = '\static\8.png'

models.UserInfo.objects.create(**obj.cleaned_data)

return redirect('/login/')

return render(request,'register.html', {'obj': obj})

============================================================================html=========================================================================

.login{

width: 600px;

margin: 0 auto;

padding: 20px;

margin-top: 80px;

}

.f1{

position: absolute;height:80px;width: 80px;top:0;left: 0;opacity: 0;

}

function imgs(ths) {

ths.src = ths.src+'?'

}

$(function () {

bindAvatar1()

});

function bindAvatar() {

if (window.URL.createObjectURL){

bindAvatar2()

}else if (window.FileReader){

bindAvatar3()

}else{

bindAvatar1()

}

这是一个流程使用控制,先进行检测如果浏览器支持第一种就执行第一种,以次类推之到最后的方式(这个方式不会出现浏览器不兼容现象)

}

Ajax上传方式(需要把头像发送到后端在获取)

function bindAvatar1() {

$('#imgSelect').change(function () {

var obj = $(this)[0].files[0];

document.getElementById('ifr').οnlοad=Idndfes;

$('#fs').submit()

})

}

function Idndfes() {

var content =document.getElementById('ifr').contentWindow.document.body.innerText;

tag='/'+content;

$('#previewImg').attr('src',tag)

}

本地上传预览(在当前就能预览)

function bindAvatar2() {

$('#imgSelect').change(function () {

var obj = $(this)[0].files[0];

// Ajax发送后台,并获取路径

// img.src = 获取路径

var v=window.URL.createObjectURL(obj);

$('#previewImg').attr('src',v);

$('#previewImg').load(function () {

window.URL.revokeObjectURL(v)

})

})

}

function bindAvatar3() {

$('#imgSelect').change(function () {

var obj = $(this)[0].files[0];

// Ajax发送后台,并获取路径

// img.src = 获取路径

var reader = new FileReader();

reader.onload = function () {

$('#previewImg').attr('src',this.result)

};

reader.readAsDataURL(obj);

})

}

标签分组(views)

def tag_s(request,tag_nick,site):

'''

标签分组

:param request:

:param tag_nick:

:param site:

:return:

'''

tag_list=models.Tag.objects.filter(title=tag_nick,blog__site=site)

print(tag_list)

return render(request,'tag_s.html',{'tag_list':tag_list})

标签分组(html)

{% extends 'template.html' %}

{% block ys %}

{% endblock %}

{% block xxs %}

标签文章

{% for i in tag_list %}

{% for row in i.article2tag_set.all %}

{{ row.article.title }}

{{ row.article.blog.user.username }}

发布于

{{ row.article.blog.user.create_time }}

{{ row.article.read_count }}

{{ row.article.up_count }}


{% endfor %}

{% endfor %}

{% endblock %}

分类分组(views)

def fenlei(request,fenle_nick,site):

'''

分类分组

:param request:

:param fenle_nick:

:param site:

:return:

'''

print(fenle_nick,site)

fenle_list=models.Category.objects.filter(title=fenle_nick,blog__site=site)

print(fenle_list)

return render(request,'fenlei.html',{'fenle_list':fenle_list})

分类分组(html)

{% extends 'template.html' %}

{% block ys %}

{% endblock %}

{% block xxs %}

分类文章

{% for row in fenle_list %}

{% for i in row.article_set.all %}

{{ i.title }}

{{ i.blog.user.username }}

发布于

{{ i.blog.user.create_time }}

{{ i.read_count }}

{{ i.up_count }}


{% endfor %}

{% endfor %}

{% endblock %}

个人主页(views)

def home(request,site):

'''

个人主页

:param request:

:param site:

:return:

'''

tags_dit={}

corts_dit={}

times_dit={}

tags=models.Article2Tag.objects.filter(tag__blog__site=site).values('tag','tag__title').annotate(c=Count(1))

通过annotate进行组合分组

for i in tags:

tags_dit[i['tag__title']]=i['c']

print(tags_dit)

corts=models.Article.objects.filter(blog__site=site).values('category','category__title').annotate(x=Count(1))

for i in corts:

corts_dit[i['category__title']]=i['x']

times=models.Article.objects.filter(blog__site=site).extra(select={'c':'strftime("%%Y-%%m")'}).values('c').annotate(cx=Count(1))

使用sqllist数据库的一种转换格式(组合分组是使用的extra)

for i in times:

times_dit[i['c']]=i['cx']

fen=models.UserInfo.objects.filter(blog__site=site)

guanzhu=models.UserFans.objects.filter(user__blog__site=site).values('follower').annotate(s=Count(1))

art_count=models.Article.objects.filter(blog__site=site).count()

page_info=PageInfo(request.GET.get('page'),art_count,3,request.path_info)

artli_s=models.Article.objects.filter(blog__site=site)[page_info.start():page_info.end()]

return render(request,'user_home.html',{

'page_info':page_info,

'artli_s':artli_s,

'tags_dit':tags_dit,

'corts_dit':corts_dit,

'times_dit':times_dit,

'fen':fen,

'guanzhu':guanzhu,

})

个人主页(html)

{% extends 'template.html' %}

{% block xs %}

主页 {{ request.session.user.user }} 注销

{% endblock %}

{% block gg %}

{% for i in fen %}

昵称:{{ i.nickname }}

粉丝:{{ i.fans.count }}

关注:{{ guanzhu.count }}

邮箱:{{ i.email }}

{% endfor %}

{% endblock %}

{% block bq %}

{% for tag,tag2 in tags_dit.items %}

{{ tag }}({{ tag2 }})

{% endfor %}

{% endblock %}

{% block fl %}

{% for tag,tag2 in corts_dit.items %}

{{ tag }}({{ tag2 }})

{% endfor %}

{% endblock %}

{% block sj %}

{% for tag,tag2 in times_dit.items %}

{{ tag }}({{ tag2 }})

{% endfor %}

{% endblock %}

{% block xxs %}

个人主页

{% for row in artli_s %}

{{ row.title }}

{{ row.blog.user.username }}

发布于

{{ row.blog.user.create_time }}

{{ row.read_count }}

{{ row.up_count }}


{% endfor %}

{% endblock %}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值