今日重點php
點贊與踩滅
評論
beautifulsoup4
kindeditor工具條的使用--如何上傳文件
1.html
reder(index.html)前端
靜態文件js不能render,視圖views中的變量,不能在reder渲染的時候,傳遞給靜態js。python
解決辦法:新加標籤,把須要傳遞的值做爲新標籤的屬性。jquery
2.ajax
ajax提交POST,data:{csrftokenxxx:$(name="csrftokenxxx").val()}
3.數據庫
js中的is_up的布爾值與python中的布爾值經過json交互django
4.json
兩個標籤(點贊+踩滅)用同一個js事件同一個class。設置相同的class,$(sameClass).hasclass(upup/downdown)後端
5.
點贊表:點贊用戶user與文章id 聯合惟一
即只容許點贊 或 踩滅 一次
try:
插入數據
except Exception as e:
state=Flase
6.
與ajax交互的視圖views:
def digg:
return JsonResponse(res)
7.
點贊前請登陸:
$(#div.digg).after(s)
8.
原子性操做:
from django.db import transaction
9.
後端數據交互要用後端的值,不要用前端的。
js取到的is_up沒有數據庫裏的is_up可靠
10.
$(#button).click(function{
if $(this)[0]==$(.up)[0]:True
elif $(this)[0]==$(.down)[0]:False
})
此處非老師講解思路,而是區分比較this對象,來判斷是點贊仍是踩滅。
注意:this綁定是click的那個對象 ,用js的方式比較,而不是jquery。
1.提交根評論 2.顯示根評論{ --render --ajax } 3.提交子評論 4.顯示子評論{ --reder --ajax} 5.顯示評論樹
提交評論時,爲了時區能正確顯示Asia/Shanghai,需作以下改動
LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' --->'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = True----> False
beautifulsoup4應用:
1.摘要(博客文章存到數據庫裏是帶標籤的,摘要截取的是文字,不要把標籤截進去)
2.刪除script標籤(保證網站安全)
def add_article(request): if request.method=="POST": title=request.POST.get("title") article_content=request.POST.get("article_content") from bs4 import BeautifulSoup bs=BeautifulSoup(article_content,"html.parser") # 過濾content for tag in bs.find_all(): if tag.name=="script": print(tag.name) tag.decompose() print("=====>",bs.prettify()) article_content=bs.prettify() desc=bs.text[0:150] obj=Article.objects.create(user=request.user,title=title,desc=desc) ArticleDetail.objects.create(article=obj,content=article_content) print("article_content",article_content) return HttpResponse("OK") return render(request,"add_article.html")
拓展閱讀:爬蟲基礎庫