Day10 - 建立专案与应用注册

今天开始要正式开发网站,这次我要挑战的是建置一个小说连载追踪系统,其相关说明如下:

背景:因为我习惯等小说完结後才一次阅读,对於感兴趣但尚未完结的作品,需要定期主动去确认目前连载进度,故希望透过系统可以将此流程自动化。

需求:

  • 建立网站,提供追踪功能,由使用者输入小说网址,如为支援网站则将此书放入追踪清单。

  • 系统定期自动使用爬虫技术,取得以下资讯:

    • 最新章节数
    • 状态:连载中,完结
  • 追踪清单页面根据当前使用者显示追踪项目的以下资讯:

    • 书名
    • 作者
    • 章节数
    • 状态:连载中,完结
  • 具有登入功能

接下来,我将根据MDN Web Docs上面的教程来建立网站。

在VSCode上运行虚拟环境

因前日建置的虚拟环境路径不太符合我个人使用习惯,且前日的情境是使用「命令提示字元,为了更接近日常开发,故这次改为从VSCode上运行虚拟环境。

  1. 在目标资料夹下建立虚拟环境。(此动作和前日相同)
virtualenv my_django_project
  1. 环境建立完成後,VSCode会侦测到有新的虚拟环境,提示视窗选择「是」。
    https://ithelp.ithome.com.tw/upload/images/20210922/201418863tLKrtDVsL.png

  2. 关闭目前的终端机(终端机右上方的垃圾桶图式)。
    https://ithelp.ithome.com.tw/upload/images/20210922/20141886OYFeI5YkJF.png

  3. 开启命令选择区 (ctrl + shift + p),选择「Python: 选择直译器」,选择刚刚建立的虚拟环境。
    https://ithelp.ithome.com.tw/upload/images/20210922/20141886LIviIemLAn.png
    https://ithelp.ithome.com.tw/upload/images/20210922/20141886qabCrKQtuv.png

  4. 这时我遇到了一个错误讯息,当时忘了截图,但大概是说「xxxx.ps1未经数位签署,无法载入」。

解决方法:使用系统管理员身份打开Windows PowerShell,输入以下指令设定PowerShell的执行原则:

set-executionpolicy remotesigned
  1. 顺利载入後,可以在终端机视窗和VSCode最下方看到目前环境为my_django_project
    https://ithelp.ithome.com.tw/upload/images/20210922/201418867KiTvcJfNX.png

在专案资料夹建立应用程序

python manage.py startapp track

https://ithelp.ithome.com.tw/upload/images/20210922/20141886igYrAoqQ3V.png

注册应用程序

应用程序建立好後,需在专案内进行注册,这样专案运行时才会将应用程序纳入。注意注册流程需在应用程序建立完成後才可进行,在建立应用程序阶段如应用程序名称已被注册,会发生错误。

注册方法:进入专案资料夹下的settings.py (上图中的bookhelper/settings.py),於INSTALLED_APPS下新增「track.apps.TrackConfig」。
https://ithelp.ithome.com.tw/upload/images/20210922/20141886Lccrz6iYKs.png

设定资料库

同样在专案资料夹下的settings.py,可以设定资料库,这边设定的是MySQL。
https://ithelp.ithome.com.tw/upload/images/20210922/20141886YLHQj4K70a.png

安装MySQL client

中间试着运行测试网站,发现无法载入MySQL模组,需要安装MySql client。

原本要使用pip安装mysql-python,但似乎这个套件有版本支援性的问题,故改用mysqlclient。

pip install mysqlclient

连结URL映射器

专案资料夹下urls.py,新增以下设定:

urlpatterns += [
    path('track/', include('track.urls')),
    path('', RedirectView.as_view(url='/track/')),
]

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

https://ithelp.ithome.com.tw/upload/images/20210922/20141886hXUFaMBKic.png

作用:

  1. 在将track/下的URL,改由应用程序track内的urls.py管理。
  2. 将根路径导向 /track。
  3. 启用静态文件。

因应用程序建立时底下没有提供urls.py,故须由我们手动建立。

from django.urls import path
from . import views


urlpatterns = [

]

<<:  TypeScript 能手养成之旅 Day 6 物件型别-基础物件型别

>>:  [ Day 07 ] Class Component

Day 06 | Dart基本介绍 - private & static

在昨天的文章中,讲到了类别基础用法包含了「宣告」、「建构子」及「实体化」,今天会继续说明Dart c...

[Vue2] 从初学到放弃 Day1

初心 写code开始,义大利面到框架,後端碰到前端。为什麽到现在才写Vue2呢?最主要的想法,是想把...

虾皮串接实作笔记-Authorize Shop:商店授权

前言 目标:串接虾皮订单、标签资讯,目前串接虾皮 OpenAPI 2.0 版本,串接手册 串接步骤:...

Basic NetSuite Customization Glossary

客制化, Customization 在 NetSuite 内提到 客制化 通常表示的是, 流程变更...

Swift纯Code之旅 Day18. 「选取TableViewCell」

前言 「重复」页面的画面已经完成了,接着实作功能吧! 功能图: 实作 首先建立一个变数,用来储存Ce...