背景
- 在去了兰州植物园和所谓的兰州天府沙宫接连失望后,十月底的这个双休日就不想再出去浪了,干脆在酒店学起Django了。
环境
- Django 2.0.5
- Python 3.6.8
- OS Linuxmint 19.2
坑一
- 在
admin.py
中注册了模块后,django的后台页面死活刷新不出来新注册的模块,试过多次刷新,没什么卵用,还试过
重启开发服务器再刷新,也还是没用,最后你猜怎么解决的,退出后台再重新进入就有了,shit!!!
坑二
- 在运行
python manage.py shell
之后报以下错误,
1 2 3 4 5 |
File "manage.py", line 13 ) from exc ^ SyntaxError: invalid syntax |
一开始百思不得其解,后来Google了一下在看到一篇SO上的介绍后恍然意识到是没进虚拟环境,source .venv/bin/activate
之后再运行上面的命令马上就好了。
坑三
- 在看Django 2 by Example的第二章的某一节的时候要我在某个模板里面添加一个p标签,我添加的位置如下:
1 2 3 4 5 |
{% block title %}My Blog{% endblock %} <p class="tags">Tags: {{ post.tags.all|join:", " }}</p> {% block content %} {% endblock %} |
本来以为即使post.tags.all|join:", "
没有获取到值也会有个Tags: 显示在页面上,结果呢,啥都没有,各种重启服务,反复刷新页面依然没有在指定的位置显示我想要的效果,就在快要绝望的时候重新看了一下这个章节的描述,把p标签加到了content block内部的某个地方,马上显示了我想要的效果,真是有点坑呀。现在想想原因也很简单,这是一个子模板,所有的html不放在{% block %}内部的话是自然不会被渲染的。
坑四
2020-04-03更新 最近在看《python3 自动化软件发布系统》这本书,看到5.7.4这一小节中的访问前端页面url(http://127.0.0.1:8000/accounts/register)看看效果的时候报了Reverse for 'login' not found
的错误,
鸡汁的我一眼就看出来这个错误是因为模板中{% url 'login' %}
这个地方的url标签引用的login路由还没有定义导致的,于是再次鸡汁的我马上就用html的注释语法<!-- -->把这行html代码给注释了,
可是在我反复刷新页面之后同样的错误仍然被报出来,各种重启和清理缓存都试了一遍都没有用,就在我快要崩溃的时候突然意识到了这不是普通的html模板呀,这是django的模板呀,而django模板的注释语法是{# #}呀,于是我换了这种django模板的注释语法,然后刷新了一下前端页面,奇迹出现了,django木有报任何错误,精美的页面出现在了我的面前。