尝试使用Wagtail(2)。引入django-extensions

首先

你好。

希望使用Wagtail进行开发,但目前未安装任何调试所需的库。
在调试中使用的Django库有django-extensions和django-debug-toolbar等。据我所知只有这些。

因此,我們這次引入了django-extensions,所以整理了相關的流程。我也想調查一下Django的庫。

上一篇文章


安装Django扩展

我会为您提供以下的一种中文翻译:
我来介绍一下Django拓展的安装流程。我在Mac上进行了操作。

首先,执行以下命令。

pip install django-extensions

然后,在mysite/settings/base.py的INSTALLED_APPS中添加django-extensions。

只要这些,基本功能就可以使用,但还有一些功能是无法使用的。
虽然有一个可以生成模型的ER图的命令(详见后文),但是它需要一些步骤。

brew install Graphviz
pip install pygraphviz

出现错误,无法顺利进行,但查看了这个ISSUE后问题得到解决。
参考:在Mac OS 10.11.6上无法安装pygraphviz。


尝试使用django-extensions

Django扩展的功能非常方便。
首先要介绍的是show_urls。

python manage.py show_urls

首先,我们将在Django项目的URL中显示“视图”和“模板”的关系列表。
我认为这种表达方式可能不太清楚,所以让我们先看一下执行日志。(部分摘录)

/django-admin/login/    django.contrib.admin.sites.login        admin:login                                                                                                                                 
/django-admin/logout/   django.contrib.admin.sites.logout       admin:logout                                                                                                                                
/django-admin/password_change/  django.contrib.admin.sites.password_change      admin:password_change                                                                                                       
/django-admin/password_change/done/     django.contrib.admin.sites.password_change_done admin:password_change_done 

左侧的/django-admin/login/等表示了连接到http://localhost:8000/后面的路径(URL模式)。

让我们来看看django在Github上的django.contrib.admin.sites。我们会发现其中有一个login函数。

右侧的“admin:login”等表示了路径的名称。在设置url_patterns时,将URL作为第三个参数。

name="hogehoge"

这样写吧。这个name就是指这个。

我想试着添加一个view函数,然后使用show_urls来查看它。
我会根据参考网站编写代码。
参考:【Django入门】使用views来显示页面

追加的代码如下所示。

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world.")


from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

from home import views as home_views # 上部に追記

url(r'^home/', include('home.urls')) # urlpatternsのリスト内に追記

当您点击此处后,显示“Hello, world。”即表示成功。

让我们运行下面的命令吧。

python manage.py show_urls | grep home
/home/  home.views.index        index

你看到了吧。
当导入视图或在模板中填写URL时很有用。
参考:Django应用程序中插入URL链接的方式和优势。

参考:实体关系图(ER图)
在django-extensions中,您只需使用一个命令就可以将项目的ER图生成为PNG格式。
这是一个非常实用的工具,可用于数据库设计。
现在,让我们执行该命令并进行确认。

python manage.py graph_models -a -o mysite_er.png
er.png

□runserver_plus
这次我再介绍一个东西。
它可以在Web浏览器上进行调试。
现在我们来执行命令。

python manage.py runserver_plus

随后,

CommandError: Werkzeug is required to use runserver_plus.  Please visit http://werkzeug.pocoo.org/ or install via pip. (pip install Werkzeug)

按照所说的,安装Werkzeug然后再次尝试。

这个普通的runserver和其他的不太一样。
日志的最后一行有这样的内容。
我们应该记下来以后使用。

 * Debugger PIN: xxx-xxx-xxx

让我们按照以下方式来编辑代码。

return HttpReesponse("Hello, world.") # わざと間違える
スクリーンショット 2019-12-24 19.30.26.png
スクリーンショット 2019-12-24 19.31.24.png

在右侧有一个类似终端的按钮。点击那里,输入刚才记下的PIN码,即可进行调试。由于可以以交互方式执行Python代码,可以检查变量等对象的值。


最后

这次我尝试把django-extensions引入到项目中。
下次我想要尝试操作Wagtail。

bannerAds