这篇文章可能会有点长,因为我会写很长时间,是整个项目的记录文件
首先介绍背景:pycharm(2018.3 professional) python(3.7) mysql(8.0.11)
这都是比较新的版本,基本就是这些了
1、创建django项目
pycharm可以使用create peoject选择django直接创建,记得可以在创建的时候写上APP的名称,可以省下后面一步
创建后的目录如下:
默认会使用sqlite3的数据库,这里可以看到它的文件,接下来试运行一下,这里直接运行manage.py,如果顺利则是下面的界面
这两个界面代表成功运行了,但是我遇到过一个坑的问题,就是运行了后只是一些配置生成,不会有对应的app运行起来,这里经过一番折腾,找到了结果
这里是因为manage的运行端口没有设置,按照上面两张图点进去设置即可,一般是因为是空白的,写上runserver 127.0.0.1:5000
即可,端口不限哈
到这里第一步就完成了,我们的Django算是运行起来
二、更改数据库为mysql
django默认使用轻量级数据库sqlite3,不需要安装,所以很方便,一个.sqlite文件即可,这里我们对应实际情况,改变一下,使用了mysql的数据库来完成,所以需要配置一下,安装数据库到本地这个我这里就不写啦,百度教程安装上吧,反正都是要用的东西
首先我们找到settings文件下,修改database的参数,默认是:
我们修改为mysql的参数:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testdb', #数据库名称
'USER': 'root', #名字
'PASSWORD': '123456', #密码
'HOST': 'localhost', #可以不写,默认的
'PORT': '3306' #可以不写,默认的
}
}
接下来我们安装Pycharm上的pymysql,这个比较简单,pip安装即可
在settings.py同目录下的__init__.py中写入下列代码:
import pymysql
pymysql.install_as_MySQLdb()
#前面两行是重要的,后面这些是测试用的,这里打印出mysql的版本,显示在程序运行界面上
db = pymysql.connect(host='localhost', user='root', password='123456', db='testdb')
cursor = db.cursor()
cursor.execute('SELECT VERSION()')
data = cursor.fetchone()
print('DATABASE VERSION IS: %s' % data)
db.close()
这个成功的话,你可以再run界面看到打印的结果
E:\PyCharm\Django\venv\Scripts\python.exe E:/PyCharm/Django/manage.py runserver 127.0.0.1:5000
DATABASE VERSION IS: 8.0.11
DATABASE VERSION IS: 8.0.11
Performing system checks...
System check identified no issues (0 silenced).
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 01, 2019 - 00:23:22
Django version 1.11.20, using settings 'Django.settings'
Starting development server at http://127.0.0.1:5000/
Quit the server with CTRL-BREAK.
也可以再Python Console中看到
E:\PyCharm\Django\venv\Scripts\python.exe "E:\PyCharm\PyCharm 2018.3.5\helpers\pydev\pydevconsole.py" --mode=client --port=57432
import sys; print('Python %s on %s' % (sys.version, sys.platform))
import d