django
是世界上最好的web框架,並在四月六號正式升級爲 django3.2
,這是 django
的 lts
版本
若是你打算從 django2.2
升級到 django3.2
那這篇文章很適合你,由於我幫你踩了不少坑。css
![上傳中...]()
html
├─apps │ ├─index │ │ ├─migrations │ │ ├─templates │ │ ├─templatetags │ ├─product │ │ ├─migrations │ │ ├─templates │ └─users │ ├─migrations │ ├─templates ├─freshshop │ └─__pycache__ ├─media │ └─product_imgs ├─static │ └─assets │ ├─css │ ├─fonts │ ├─img │ └─js ├─templates
我喜歡將建立的app單獨放在一個apps文件夾中python
可是在django3中這樣作會遇到以下報錯web
File "C:\Users\17293\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\management\__init__.py", line 375, in execute autoreload.check_errors(django.setup)() File "C:\Users\17293\AppData\Local\Programs\Python\Python38\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "C:\Users\17293\AppData\Local\Programs\Python\Python38\lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "C:\Users\17293\AppData\Local\Programs\Python\Python38\lib\site-packages\django\apps\registry.py", line 91, in populate app_config = AppConfig.create(entry) File "C:\Users\17293\AppData\Local\Programs\Python\Python38\lib\site-packages\django\apps\config.py", line 246, in create raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Cannot import 'index'. Check that 'apps.index.apps.IndexConfig.name' is correct.
待填django
在apps.appname.apps.py
處的name
屬性修改成apps.appname
app
默認是這樣,可是會報錯框架
from django.apps import AppConfig class IndexConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'index'
修改成spa
from django.apps import AppConfig class IndexConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'apps.index'
按照習慣會在根目錄下建立一個templates
文件夾,在文件夾中方式公共的模板,例如 base.html
code
可是此處遇到了一個問題,就是pycharm
沒法識別django3
下的templates
的內容(app下的templates
是能夠的,根目錄的不行)htm
django2
中 BASE_DIR
使用 os
模塊生成,而在 django3
中改爲了 pathlib
模塊的 Path
類,生成的BASE_DIR
也從字符串變成了 WindowsPath
類實例,所以 pycharm
沒法識別(獲取將來的pycharm版本會支持)
手動改回 os
模塊