9.29博客项目迭代1.2
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语句
好了 明天继续迭代!!睡觉觉啦!忙了一下午!