项目踩坑之路

关于大创项目的踩坑

001、Pycharm community 创建Django项目

如果你可以直接在pycharm中创建Django项目,略过这一步。

Pycharm 社区版不能直接创建Django项目!!我们要用命令行的方式!!

第一步:打开CMD,
第二步:找到自己想要建立项目的文件夹:

第三步:创建一个django project;

django-admin startproject mydjangoproject    #创建一个名称为mydjangoproject的django项目
1

第四步:创建一个app:

django-admin startapp app01  #创建一个名称为app01的应用
1

在这里插入图片描述

此时,在对应文件夹我们的项目已经建好了。我们在Pycharm中点击File --> Open -->刚才创建的Django项目

在这里插入图片描述

我们就得到了这样一个初始的Django项目:

在这里插入图片描述

还没有结束!!我们要将它启动起来!

第五步:启动Django项目

在命令行中打开项目所在位置

执行一下这个:python manage.py migrate

踩坑:不执行可能会报以下的错!

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…

在这里插入图片描述

使用python manage.py runserver 8000运行Django项目,测试成功!!!

踩坑:如果运行python manage.py runserver 0.0.0.0:8000,Django会以为是公网来访问它,而实际上我是在本地访问,所以会访问失败!
在这里插入图片描述

在浏览器中输入127.0.0.1:8000

在这里插入图片描述

成功!!!

参考blog1

参考blog2

参考blog3

002TemplateDoesNotExist

django运行时报错,提示TemplateDoesNotExist,某个html文件不存在

当然我的html模板全部放在Templates目录中,通过错误信息可以看出,django是直接把我给的模板路径当作了绝对路径,自然找不到html文件。查看了项目setting文件后,看到了其中有关于Template的设置方法,其中包括一个‘DIRS’的选项,百度一下之后,得知需要把项目模板所在目录的路径添加到这里,代码:

'DIRS': [os.path.join(BASE_DIR, 'templates')],

其中BASE_DIR指项目的db.sqlite3所在的目录,后面是模板目录相对db.sqlite3的路径。

解决!!

003Cannot connect to Database Server

使用MySQL Workbench想打开本地连接,结果报错:Cannot connect to Database Server,解决方案如下:

①检查mysql的服务是否运行

输入指令:services.msc,可以打开服务管理器,查看服务是否开启,如果没有开启则手动开启

img

我是进行完第一步后就可以建立连接了!

②检测默认的端口号是否是3306,可以在my.init文件中查看该属性的值

img

③检测是否有权限访问该地址

mysql -u root -p -h ip地址 -p 端口号,输入密码后可以测试是否可以访问数据库

img

④设置了密码并使用了正确的密码进行登陆

004 Django Admin 管理工具创建超级用户时,密码不显示

其实,输入的时候并不是没有反应,只是你输入的时候命令行没有将你的输入显示出来,关键是输入行对Password:********也不是采用这种方式隐藏,而是完全的空白。所以即使按键盘感觉没有反应你也要先输入password,再按回车这时会出现password(again),如果出现Error: Your passwords didn’t match.说明两次输入的密码不同,如出现Superuser created successfully.则说明已经success.

在这里插入图片描述

005 关于老师给的mysql文件夹的问题

在启动老师给的代码后,会弹出一个登录界面,需要输入用户名和密码进行登录,如图:
在这里插入图片描述

不知道用户名密码是什么? 回想一下:那个mysql文件夹中有个test 文件夹,里面有三张表,其中两张是我们在Django中创建表结构时自动生成的。还有一张user表,我们通过项目中的model可知,它有两个字段username和password,据此分析出user表中存放着我们登录用的信息!

不要高兴! 我们发现user是一个ibd文件,也就是存放表结构的二进制文件,也就是底层文件,我们无法直接打开,那该如何?

首先,我们要清楚ibd文件一般是用来恢复数据的,当我们的数据库受损,或是由于意外情况导致数据丢失,我们就可以通过ibd文件来恢复数据! 在查阅了大量的资料以后,找到以下一种比较合理且简洁的方法:

此方法mysql5.7版本以上适用。
 假如你的数据库表都没了,而mysql目录下的data中.ibd还在的话,你可以试试此方法。
 创建一个新的数据库
 创建一个表(表名与待恢复的表名相同),字段结构跟丢失的一样,
 进入该数据库,删除该表空间
 
 例如: ALTER TABLE project DISCARD TABLESPACE;
 
 project是我的表
 
 将project.ibd复制到新建的数据库下,执行命令,导入表空间。
 
 ALTER TABLE project IMPORT TABLESPACE;
 
 这时候查看表,数据就显示出来了

但是!我用这种方法没有成功,它报了以下错误:

1808 - Schema mismatch (Clustered index validation failed. Because the .cfg file is missing, table definition of the IBD file could be different. Or the data file itself is already corrupted.)

译文:1808-架构不匹配(聚集索引验证失败)。由于缺少.cfg文件,IBD文件的表定义可能不同。或者数据文件本身已经损坏。)

无奈,询问老师和学姐,她们那里也没有.frm文件,老师说可能是原来的毕业生弄丢了这个文件。。

学姐建议新建数据库,自己定义username和password,并修改Django中相应的xml文件和model与setting.

首先在pycharm中连接数据库,(因为pycharm与idea是都是Jet Brains 的产品,所以界面风格基本一致,在maven项目中,我们可以在左边看到DataBases,然后就可以连接数据库),但在pycharm中我找了半天没找到。这是因为我们没有下载database插件!

首先 我们先把 databases 整出来(参考自csdn)

第一步,打开设置

在这里插入图片描述

第二步,打开plugins,搜索database sql,每个版本出来的软件可能不一样,我的是这个:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bg9Zwbej-1602503798483)(../Pictures/大创/databases2.png)]

然后,就成功了,打开View下的Tool Windows 发现多了一个 DB Browser,点开

在这里插入图片描述

选中MySQL就可以开始添加数据库了,问题解决。

其次,建立数据库,建表

使用MySQL图形化界面建立一个名为test 的数据库(当然,你也可以起其他的名字,但别忘了修改Django中相关的内容)

前文提到过,我们从Django的model中得知test的数据库中有一个名为user的表,user表中有username和password字段,在创建表示,别忘了再加上id字段,它在这里是默认递增的!

在pycharm中连接数据库,选中test数据库,进行下一步:

调整表结构

找到pycharm下方的Terminal输入

python manage.py migrate

出现以下信息:

在这里插入图片描述

加载完成后,我们会看到test数据库中自动生成了很多表!

在可以启动项目,看看用户界面了!

pycharm下方的Terminal输入:python manage.py runserver 8000(启动Django项目,开头提到过)

在这里插入图片描述

我们点击链接就可以在浏览器打开!

输入我们保存在user表中的username与password就可以登录上去了!

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值