在线网站搭建(三):Django基础知识回顾

零基础使用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

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180724G1NRXA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券