因为要写作业用到Python3,所以要在我的新Mac上进行安装和配置。由于是Mac小白,所以很多操作不敢胡乱进行,看了好多教程感觉各种方法都不太一样不知道谁家靠谱,就只能结合多方意见并记录下每一步的证据,以后有问题也好来回溯。
首先看了下自己mac里默认的python版本:
可以看出,直接python出来的是2.7的版本。如果输入python3,会跳转到python3的版本,但是我不清楚这是由于我之前装了homebrew而给我新装的,还是mac本身也自带了python3。
接下来,根据https://opensource.com/article/19/5/python-3-default-mac,我输入了以下两条指令来check homebrew:
brew list | grep python
brew info python
得出结果如下:
(这文本编辑器对图片的处理也太不友好了吧)
然后我试了一下pip,发现居然找不到命令:
接下来试了一下pip3,没问题:
我寻思着可能我就把默认的python改成python3说不定就可以了?以后用pip记得用pip3。
按照https://blog.csdn.net/NancyLiu0/article/details/81781809 写的方法逐步配置:
1. 原文说是打开~/.bash_profile文件,然鹅我并没有这个文件,所以就自己创建了一个:touch ~/.bash_profile
2. ls确认了一下位置,写入python的外部环境变量:export PATH=${PATH}:/usr/local/Cellar/python/3.7.4/bin
3. ls确认了一下文件名,然后重命名python:alias python="/usr/local/Cellar/python/3.7.4/bin/python3.7"
4. 使配置文件生效:source ~/.bash_profile
5. 检查python的默认版本:python
6. 完美!
具体截图如下:
然后开始自己造作地安装django了:
莫有报错,完美!
然后看了课堂笔记才想起来,老师好像是先设立了virtualenv再在这个virtualenv里面装的Django……好像没得救了,就这样吧,卑微.jpg
创建了新的文件夹,发现没有自带virtualenv,就pip了一个,然后打开:
进入和退出virtualenv:
接下来就跟着老师给的https://medium.com/fbdevclagos/how-to-build-a-todo-app-with-django-17afdc4a8f8c 教程开始做:
最后的文件结构大概是这样:
然后python ./manage.py runserver 8100,启动服务器:
打开:localhost:8100,成功!
然后跟着教程在第一个todoapp文件夹下新建了templates文件夹(第二天补充:今天又重新看了一些教程,似乎templates文件夹还是得放在app里,也就是todolist文件夹下),然后复制了那些代码,操作了以下这些命令来migrate:
最后出来的页面和上一步没做时是一样的。
然后复制了教程里的一堆代码,到admin那里运行,结果才发现有报错:
查了一下,发现应该还要在参数后面加上一句:on_delete=models.CASCADE (来自:https://blog.csdn.net/yjk13703623757/article/details/79452968)
然后就可以正常启动服务器了,结果在运行的时候又出现了这个错误:
在原文搜了一下这个whitenoise,发现除了在settings.py里面出现了以外都没有出现,我就暂时先把它注释掉看看。结果又出现了这个问题:
想不到是什么问题,就重新做了一下migration:
然后就发现它神奇地变好了!猜测可能是之前migrate的时候我忘了保存models.py?
然鹅页面很丑,好像CSS没有load好。最后发现原来static file要放在todolist的文件夹下,最后整个项目的目录是这样的:
然后继续做后面的creating categories部分,结果发现之前懒得想密码给自己挖了个大坑,就重新做了createsuperuser,登录进了admin,按教程添加了几个category,回到网页测试了一下,发现还行,就是如果没选要delete的todo的时候会出错:
怀疑可能是之前on_delete报错的时候加上了那句话,然后由那句话导致的吧,不想管了,改天上piazza问问。
一晚上就搞了这一件事儿,卑微。
2019.9.21 补充一下默认的pip command如何运行。
为了写741作业要用python2,想要pip pwn结果command not found,上网搜了一下发现可以直接运行以下指令:sudo easy_install pip