零基础使用Django2.0.1搭建在线教育网站(三):Django基础知识回顾
写在前面
在前面的第二篇里,我们创建了一个名为djangoTest的项目,现在我们通过利用这个项目制作一个简单的留言簿来对django的基础知识进行一个回顾。
笔记中本篇对应上传的仓库为:https://github.com/licheetools/djangoTest对应第三篇截止代码。
知识目录
在前面创建Django的时候,你会出现这样的目录结构,但是在运行命令manage.py runserver 8000之后,你会发现变成了下面这个样子:
看到没,是不是多了一个db.sqlite3文件,这是因为你在运行的时候联接了已经存在的数据库,从而自动生成了一个sqlite3文件。
好,接下来介绍一下该目录树的结构以及各个节点文件的作用(为了更加清楚准确的介绍,我把这个结构树分为了6个部分):
1、djangoTest: 这个djangoTest与2中的不一样,这是树的开始,也就是主目录;
2、djangoTest: 这个djangoTest与1中的不一样,这是项目目录,记住主目录和项目目录名称是一样的,且在创建Django项目的开始时候确定;对于2中的文件介绍如下:
--init--.py: 一个空文件,用于告诉计算机这是一个Python包;
settings.py: 用于对项目的全局进行配置的文件(该 Django 项目的设置/配置);
urls.py: 主要的urls配置入口(该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录");
wsgi.py: 是Django启动的必须文件(一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目);
3、templates:它的作用是放置静态的html文件
4、db.sqlite3: 用于保存数据,开始没有,必须运行之后才有,且不固定,Django默认是sqlite数据库,但你也可以用MySQL,自然文件类型就发生改变了,但都是数据库文件。
5、manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互(启动Django需要的主要文件,主要的Django命令都通过manage.py来运行)
6、External Libraries:这是扩展包的入口(外部库存放地址)。
上面只是project(项目),但是真正来实现各种不同功能的却是各种app(应用),下面我们来利用pycharm创建app。
项目与应用
你可能会有疑惑,我们之前都已经创建了djangoTest这个项目,为什么还要创建各种app应用呢?别急,我来告诉你其中的原因,我们以常用的手机软件微信来说明这个道理。你知道微信这个手机软件的名字对吧,其实这个名字就是一个项目,而且你还知道微信可以用来语音聊天,视频聊天,发图片,文字。。。等,这些不同的功能我们就称之为应用。现在明白了吧,不同功能的应用构成了项目。那么问题来了,我们如何利用Pycharm来创建app呢?
利用Pycharm创建app
第一步:在 Tools -> Run manage.py Task进入创建app的命令入口;
第二步:在命令入口输入创建命令startapp appname,然后回车即可。
你会发现生产了一个新的应用,而且目录树的结构发生了变化,多了这么一个东西:
这个红色框里面的都是我们刚才创建liuyan这个app里面的文件,下面继续给大家介绍一下新目录树的结构和节点文件。
1、migrations:它是一个Python包,里面目前只有--init--.py这个用于计算机识别这个包的空文件,这个包是用来存放数据迁移文件的,每次数据的变动,我们都需要更新数据库,否则会出错,更新的命令是makemigrations和migrate而且顺序不能对换!关于这一点,我后面还会继续说明,这里你只需要有一个大概的认识即可;
2、admin.py: 用于身份验证;
3、apps.py: app信息;
4、models.py: 用于数据定义;
5、tests.py: 用于app测试;
6、views.py: 用于视图的创建。
创建static文件夹
当然我们的项目肯定不只有html,肯定还有javascript,css,图片等文件,所以我们需要创建一个static文件用于存放静态的文件。将鼠标移至djangoTest这个主目录上,右键new--> python package-->写入名字static回车即可!如图:
创建log文件夹
当然,我们还需要创建log文件夹,用来存放网站的日志文件,这是必不可少的。
创建media文件夹
与此同时,因为是Web应用,就必须有一个用于存放用户上传的图片,视频等资源文件夹。
至此,web的文件夹都已经创建完成了。
创建apps文件夹
但是还有一个问题,正如你所知道的一个项目是由很多个app构成的,我们不可能每个app都直接放在项目根目录下,这样会导致我们的文件夹太多了,不利于管理,所以我们可以新建一个apps文件夹,用于存放各个app,这样就好看多了。然后将我们刚才新建的liuyan这个app拖入到apps这个文件夹里面,会自动生成一个init文件。
不过这样做就是有一个坏处,就是我们在导入包的时候可能会出错误,我们需要每次在导入的时候前面加上apps.,这样太麻烦了,
但是我有方法可以解决这个问题,往下看:
我们可以在apps这个文件夹上面,右键拉到底部,看到Mark Directory as以后单击Sources Root即可,你会发现apps这个文件夹变成了蓝色(前面第一篇有介绍)。
其实这个方法不是很靠谱,因为你这样做只是让Pycharm知道文件放在哪了,要的时候去哪里找,但是如果你用dos命令去运行,还是因为找不到文件地址而报错的,因为它是根据settings.py来查找文件的。下面介绍另一种更完善的方法。
在上面,os是用于输入输出的库,前面输出的是当前的项目主目录,后面输出的则是apps这个目录,我们这里采用os.path.join()函数来,将项目的绝对路径与apps进行拼接,返回一个新的地址。
至此,前期准备我们做完了,接下来便是开始敲我们的留言簿代码了。有朋友问我如何利用Pycharm把代码直接分享(上传)到github 仓库,这里我简单介绍一下。
利用Pycharm把代码直接上传到github 仓库
在此之前,你的电脑需要安装git和你必须要有一个github账号,在这里我就不详细介绍这些了,直接开启传送大门,点这里。
GitHub的注册与使用(详细图解)或者这个 GitHub账户注册
;git的安装和配置。
2、将鼠标移至左侧的Git,单击一下,然后选择git的路径之后,基本上点击右下角的apply,然后ok一下就可以了。
放大一下,每个人的不一样,这是我的git安装地址:
3、点击开始页面顶部的VCS,
然后再点击出现的倒数第三个import into Version Control,再选择出现的最后一个Share project on github,再点击就出现一个窗口,填写你的项目名称,描述,点击share。弹窗让你选择需要上传的项目文件与commit信息输入之后,项目将会上传至github。登录你的github账号,你就会发现你的项目已经上传成功了。
至此,关于Django的基本知识就先介绍到这里,下篇我将开始利用代码对留言簿这个小应用进行开发。
啃饼思录
微信ID:kbthinking
领取专属 10元无门槛券
私享最新 技术干货