9.29博客項目叠代1.2
阿新 • • 發佈:2018-09-30
ror 路由 down rbo 睡覺 對象 pre fir 手動更新
2018-9-29 21:41:02
放上github網站 https://github.com/TrueNewBee/bbs_demo
忙了一下午,不同的bug采坑 最後還是弄完了!
貼上筆記 項目放在了github
1. form組件梳理 註冊功能: 1. 利用form組件生成HTML代碼 2. 使用AJAX提交數據,並且在頁面顯示錯誤信息 3. 後端還是使用form做校驗 額外補充: 滑動驗證碼 前端預覽頭像 2. 站點主頁 - Django admin簡單使用1. 告訴admin 我有哪一些表 1. 在app/admin.py文件中,把表註冊一下 2. 只有超級用戶才能登陸admin管理後臺 3. blank=True 控制django admin 可以不填 parent_comment = models.ForeignKey("self", null=True, blank=True) # 在Django admin裏面可以不填
4. 對於局部鉤子 一定要有返回值, 比如確認email ,就得return email# 重寫email字段的局部鉤子 def clean_email(self): email = self.cleaned_data.get("email") is_exist = models.UserInfo.objects.filter(email=email) if is_exist: # 表示郵箱已註冊 self.add_error("email", ValidationError("郵箱已被註冊")) else: return email
auth模塊再講解
詳見今天auth_demo示例代碼
import os if __name__ == ‘__main__‘: os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bbs.settings") import django django.setup() from blog import models # 基於對象的查詢 SQL: 子查詢 # a1 = models.Article.objects.first() # print(a1.user.avatar, type(a1.user)) # # # 基於QuerySet查詢, SQL: join連表查詢 # a2 = models.Article.objects.filter(pk=1) # print(a2.values("user__avatar")) # 查詢a1對應的評論數 ret = models.Article.objects.first().comment_set.all() print(ret)
5. 把Django 的admin設置為中文 # 更改admin的編碼 # LANGUAGE_CODE = ‘en-us‘ LANGUAGE_CODE = ‘zh-hans‘ - Bootstrap布局 - 2 8 2布局 - media的配置 # Django用戶上傳的豆角media文件 MEDIA_URL = "/media/" # media配置, 用戶上傳的文件都默認放在這個文件夾下 MEDIA_ROOT = os.path.join(BASE_DIR, "media") # 需要在url中加上下面一段話 # media相關的路由設置 url(r‘^media/(?P<path>.*)$‘, serve, {"document_root": settings.MEDIA_ROOT}), - ORM查詢操作 - 基於對象的查詢 - 基於QuerySet的查詢 當查詢比寫入操作多的時候,我們盡量減少跨表查詢,節省時 間。 文章表的評論數據和點贊踩滅數據 是通過額外字段寫在文章 表裏的 class Article(models.Model): # 評論數 comment_count = models.IntegerField(verbose_name="評論數") # 點贊數 up_count = models.IntegerField(verbose_name="點贊數", default=0) # 踩 down_count = models.IntegerField(verbose_name="踩", default=0) # 不過需要手動更新 下次介紹 3.在models裏面 在各個class下設置 class Meta 可在Django admin頁面顯示中文 class Article2Tag(models.Model): """ 文章和標簽的多對多關系表 """ nid = models.AutoField(primary_key=True) article = models.ForeignKey(to="Article", to_field="nid") tag = models.ForeignKey(to="Tag", to_field="nid") class Meta: unique_together = (("article", "tag"),) verbose_name = "文章-表簽" verbose_name_plural = verbose_name --------------------------------明天內容 ---------------------------- 3. 個人主頁 - 分組、聚合 - extra() --> 執行SQL語句
好了 明天繼續叠代!!睡覺覺啦!忙了一下午!
9.29博客項目叠代1.2