零基础搭建网站django1.11+MySQL5.6+echarts动态获取数据
本博客为博主原创,如需转载,请附上本文链接https://blog.youkuaiyun.com/JasonLeeeeeeeeee/article/details/80482028,谢谢
由于实验室的需要,博主受命一周内搭一个web服务原型系统,包括前后端。具体需求是,在前端可以实现从后台数据库中调取数据,并且是可以选择的从后台数据库中动态查询数据展示数据。
这些需求对于学过或者做过web服务的同学来说很简单,但是博主基本是零基础,现在都闹不清js语法,还有jQuery什么的,只能照猫画虎,好在实验室有个具有开发web经验的师弟,想要师弟链接戳这里,可以咨询他一些逻辑上的问题,先在这里表示感谢。废话不多说,开始正文:
开发环境
- Linux系统
- django1.11
- MySQL5.6
软件安装
安装软件可以参考django安装和MySQL5.6安装这两个教程。在安装django的链接中,还有一些其他的知识,也会有很大的帮助,可以学习学习。
我在这里说几点我当时安装的时候遇到的问题吧:
为什么不安装高版本的MySQL?
当时我也下载了MySQL8.0版本,但是不知道是因为我下载源有问题还是之后的版本文件结构确实有所改动,在执行安装数据库语句 ./scripts/mysql_install_db –user=mysql 的时候报错,因为没有scripts语句,同时我也没有找到 mysql_install_db 这个文件。自己的需求本来就是从数据库里读数据,至于数据库版本没有过高要求,故选择了5.6.40的版本。
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’(2)
按照提示的错误进入/tmp文件夹后们确实没有/mysql.sock,这怎么办?总不能自己建立吧,万一错的更离谱怎么办?继续搜。终于在一个博客中发现了一条语句 ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock ,既然找不到,那就软链接到已有的mysql.sock上,管用。
在安装完django和MySQL后,还需要安装mysqlclient,不然同样会报错
在Linux系统下安装mysqlclient比较简单,可以参考链接Django安装mysqlclient。
提示找不到libmysqlclient_r.so.xx
在这种情况下,试着用find命令找一下你的系统中有没有其他的libmysqlclient_r.so.xy,可能仅仅是xx与xy不一样的问题,也就是mysqlclient的版本与所需版本不一样,可以从这里下手进行调整。
这些问题是我现在还记得的一些问题,当然还有一些其他的问题,例如pip命令找不到之类的,这些可以在网上很容易搜到解决办法,不赘述。
开发步骤
- 按照Django基本指令新建project和app,假设新建的project,app的名称都为project,app
- 修改project/project/setting.py文件
根据教程中的说明修改INSTALLED_APPS,即在最后增加 ‘app’(新建app的名称)如果是新建的app只需修改这里就完成setting文件的修改,若新建的project,则建议以下全部修改完
ALLOWED_HOSTS = ['*'] #这里修改成这样是指允许所有的IP访问该项目
在MIDDLEWARE中在'django.middleware.csrf.CsrfViewMiddleware',
前面加一个#号
#'django.middleware.csrf.CsrfViewMiddleware', 注释掉这行代码是为了在后续使用Ajax时,关闭认证,不然会报错,这样也是有风险的,详细可见教程CSRF认证这一章
若整个项目中各个页面需要继承相同的框架,可以在pro