零基础使用Django2.0.1打造在线教育网站(三):Django基础知识回顾

关于博主

努力与运动兼备~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

                 微信公众号:  啃饼思录:
                 QQ: 2810706745(啃饼小白)

写在前面

在前面的第二篇里,我们创建了一个名为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账户注册

](https://www.cnblogs.com/Amedeo/p/7664224.html);git的安装和配置

接下来的步骤看仔细了,前方高能,请坐好扶稳。

1、点击左上角的File,选择Settings,然后选择Version Control,点击出现的GitHub,在出现的页面右上角选择Auth Type,选择password,然后输入你的github账号和密码,再点击下面的Test按钮Test连接是否正常,下面的Clone git repositories using ssh可以勾选一下,最后点击右下角的apply,然后ok一下就可以了。

2、将鼠标移至左侧的Git,单击一下,然后选择git的路径之后,基本上点击右下角的apply,然后ok一下就可以了。
放大一下,每个人的不一样,这是我的git安装地址:
3、点击开始页面顶部的VCS,
然后再点击出现的倒数第三个import into Version Control,再选择出现的最后一个Share project on github,再点击就出现一个窗口,填写你的项目名称,描述,点击share。弹窗让你选择需要上传的项目文件与commit信息输入之后,项目将会上传至github。登录你的github账号,你就会发现你的项目已经上传成功了。

至此,关于Django的基本知识就先介绍到这里,下篇我将开始利用代码对留言簿这个小应用进行开发

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

推荐两个bash环境下的Git插件

情景 在使用Git时,常遇到这样的情况: 使用子命令时必须完全输入,并不能像shell那样有命令补全的功能; Git鼓励大量使用分支,当在分支之间切换时,常常需...

38190
来自专栏Java帮帮-微信公众号-技术文章全总结

Loadrunner11的使用图解,测试并发,性能等的具体步骤

每次开启电脑都需要破解一次Lr,汉化版的有问题,建议使用英文版的。我测试的环境是Windows7+IE8+LR11。(在Windows10上试过,谷歌和IE11...

17730
来自专栏破晓之歌

15款Django开发常用软件包 原

1. Python social auth 一款社交账号认证/注册机制,支持Django、Flask、Webpy等在内的多个开发框架,提供了约50多个服...

7920
来自专栏运维小白

Linux基础(day67)

19.7 主动模式和被动模式 主动模式和被动模式 主动或者被动是相对客户端来讲的 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接...

24090
来自专栏信安之路

bWAPP 玩法总结

bWAPP(buggy web Application)是一个集成了了常见漏洞的 web 应用程序,目的是作为漏洞测试的演练场(靶机),为 web 安全爱好者和...

7.4K10
来自专栏程序员宝库

Linux 下各文件夹的结构说明及用途介绍

linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令。 /dev:设备特殊文件。 /etc:系统管理和配置文件。 /etc/rc.d:启动的配...

463120
来自专栏北京马哥教育

史上最全 Linux 下各文件夹的结构说明及用途介绍

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令。 /dev:设备特殊...

458110
来自专栏Puppeteer学习

超越Ctrl+S保存页面所有资源

页面所有资源包含本页面所在域资源以及第三方域资源,同主域的资源也认为第三方域资源,这种资源一般是以绝对路径的方式标识,同域下资源主要有三种表现方式 (以ht...

65730
来自专栏为数不多的Android技巧

如何调试Android Native Framework

半年前写了一篇文章,介绍 如何调试Android Framework,但是只提到了Framework中Java代码的调试办法,但实际上有很多代码都是用C++实现...

50420
来自专栏技术墨客

React 搭建开发环境

本文记录了本人以及目前团队从无到有使用React的过程,我们将从webpack开始说起,一步一步展现React最基本的开发生态。在这里并不会介绍任何jsx或es...

21410

扫码关注云+社区

领取腾讯云代金券