前言

最近想撸个项目。凭着学习一波的想法,在B站找了份python django的教学视频。跟着做做,打打python基础;顺带把用qt做个ctf小工具集的念头提上行程。
教程地址:https://www.bilibili.com/video/BV1vt411378b

07-14更新:心累,下面部分直到14号更新的也踩坑了。大家引以为鉴,看看就好,不要跟着操作。

开始

小白推荐从P1看起,像我这种直接P4跳看的不推荐。顺带讲讲坑:
PyCharm版本不要太高,不然没有内置django。(也可能不是专业版的原因)
博主使用python3.8版本,PyCharm2018和谐版。

坑一:Pycharm新建django的时候可能会出错,导致项目有少文件等等问题。(解决:打开路径手动删了重新创建项目)
坑二:要有mysql,博主使用之前用过的phpstudy中包含的mysql服务。(推荐学习使用集成环境。快速简单)

坑三:报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
原因是没安装pymysql。在pycharm左下角Terminal下运行安装命令pip install pymysql即可。


然后修改 init.py 内容改为:
import pymysql
pymysql.install_as_MySQLdb()

坑四:报错django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2

修改 init.py 内容改为:
import pymysql
pymysql.install_as_MySQLdb()
pymysql.version_info = (1,3,13,”final”,0)

坑五:报错django.core.exceptions.ImproperlyConfigured: runserver can’t serve media if MEDIA_URL is within STATIC_URL.
解决:把static和media分开建立不同的文件夹。

大成功!

07-14更新

终于有时间学习了,跟着敲了一波代码发现不同版本的太多坑了,于是重新选择和视频教程同一版本。

先带大家看看坑:
TypeError: init() missing 1 required positional argument: ‘on_delete’
原因:django 升级到2.0之后,表与表之间关联的时候,必须要写on_delete参数,否则会报异常。
换了django1.11.6:
django1.11 启动错误:Generator expression must be parenthesized
原因:由于django 1.11版本和python3.7版本不兼容, 2.0版本以后的Django修复了这个问题。

于是换了django1.11.6和python3.6版本!!!和视频保持一致。瞬间理解为啥编程入门能难死一群人了。

更换版本

感觉这个有必要稍微讲一下。毕竟我出品的文章还是要尽量对新手保持友好。
python去下载3.6版本,若是官方的太慢可以百度搜索下载。然后在新建的时候选择python3.6版本即可:

眼尖的可能以经注意到了,我们这里选的是pure project,因为后面要改成django1.11.6
接着参考这篇文篇即可:https://www.cnblogs.com/shihaoyu/p/10489567.html
注意名称和项目名称一致。为了和视频同步我直接把双层目录剪切到上一层了。然后运行的时候还是会报上面的错误,解决之后大成功x2!

还有一些步聚要做,用pychram生成的有填users,所以我们这里要用命令python manage.py startapp users创建它,并且配置如下

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users.apps.UsersConfig',
]

为了方便大家学习,代码同步到github仓库https://github.com/honjun/MyGuLiEdu

希望这篇文章能给你带来知识和乐趣,喜欢博主的文章可以加博主好友哦

有好的文章也可以向博主投稿哦