前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零基础使用Django2.0.1打造在线教育网站(三):Django基础知识回顾

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

原创
作者头像
啃饼思录
修改2018-09-10 21:08:25
7220
修改2018-09-10 21:08:25
举报

关于博主

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

代码语言:txt
复制
                 微信公众号:  啃饼思录:
代码语言:txt
复制
                 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的基本知识就先介绍到这里,下篇我将开始利用代码对留言簿这个小应用进行开发

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于博主
  • 写在前面
    • 知识目录
      • 项目与应用
        • 利用Pycharm创建app
          • 创建static文件夹
            • 创建log文件夹
              • 创建media文件夹
                • 创建apps文件夹
                • 利用Pycharm把代码直接上传到github 仓库
                相关产品与服务
                云数据库 MySQL
                腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档