按照https://realpython.com/django-setup/搭建django后端。
略有几个小问题,一并记录下来。
1. 用django-admin.py初始化一个项目时,运行这条语句后,自动打开了pycharm。这是因为之前设置了*.py文件的默认打开方式是pycharm。
django-admin.py startproject my_django15_project
解决方案是设置*.py文件的默认打开方式为python.exe。
2. 仍然有问题
解决方案:打开注册表(执行regedit)
找到:HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
将原值:"xxxx/python.exe" "%1"
修改为:"xxxx/python.exe" "%1"%*
运行成功后的文件夹内容如下:
2. 安装mysql。
最开始我下载了mysql的zip包,这个比较麻烦。后来直接下载了*.msi安装包,一步步安装就可以了。
https://dev.mysql.com/downloads/installer/
3. 安装mysql-python出错
pip install MySQL-python
问题是vs版本不对,这个直接到
http://landinghub.visualstudio.com/visual-cpp-build-tools下载whl,到本地编译。
4. 教程里对settings.py的设置如下,这个需要提前在mysql里create database django_db;
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_db', 'USER': 'root', 'PASSWORD': 'your_password', } }
5.
$ cd my_django15_project
$ python manage.py syncdb
这块代码报错,MySQLdb._exceptions.OperationalError: (2059, )
原因是:AttributeError: module 'html.parser' has no attribute 'HTMLParseError'
解决方法:这是因为安装django的版本太低了,一开始安装的是1.5.12。重新安装了1.8.1。这个教程比较老,但是作者也提供了1.5、1.6、1.7、1.8的不同版本的教程。
6. 报错:
MySQLdb._exceptions.OperationalError: (2059, )
解决方法:
因为mysql8.0密码加密的问题,mysql8.0对用户密码的加密方式为caching_sha2_password。如果要继续沿用之前版本的加密方式 mysql_native_password,在MySQL中执行如下所示即可。
在sql里
>alter user 'root'@'localhost' identified with mysql_native_password by '你的root密码'
>flush privileges
7. 修改settings.py里template的dir
添加templates所在的目录
8. 总结一下
django-admin startproject可以直接建立一个工程。
templates/有一个index.html作为展示的网页
网页地址在urls.py中注册:
在settings.py中注册myapp,并添加templates的路径