Django 学习笔记之使用旧数据库
如果你按照顺序,从第一篇文章读到本文。恭喜你,你已经将 Django 大部分基础知识掌握了。
后续的文章是在之前的基础上添砖加瓦或常用的应用。本文将的内容是一个场景应用,新项目使用旧数据库。
可能以前项目是使用其他语言,如 Java 或 PHP 开发的,后面迁移到 Python 上。虽然应用程序改变了,但是数据缺不是丢弃。
因此,存在这样的问题。那就是使用 Django 开发的 Web 应用程序如何使用旧的数据库?
我就使用旧的 SqLite 数据库作为例子进行讲解,MySQL 等其他数据库也是操作类似。
1.导入数据库旧的数据库名为 MyDataBase.db, 我将其导入到新项目的 db 目录。
然后将 settings.py 文件中的数据库名称修改下。
12345678DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # 系统自动生成 # 'NAME ...
Django 学习笔记之表单
本文是自己 Django 学习笔记系列中第 8 篇,算是基础知识篇章中最后一篇笔记。
后续的笔记内容会相对比较综合。所以建议大家要把前面的内容,包括本篇笔记掌握。而本篇内容主要是讲解表单。
1.表单是什么?表单英文单词是 Froms, 它其实属于 HTML 的知识范畴。
HTML 表单可以实现用户和 Web 站点之间数据交互。表单允许用户将数据发送到 Web 站点。
但在大多数情况下,Froms 携带的数据发送到 Web 服务器,Web 页面会将其拦截并自己使用它。
举个栗子,用户使用浏览器访问一个页面,在页面的搜索框中输入图书的名称,想获取所有销售该图书的商店。
Web 站点需要获取图书名称的信息作为数据库查询条件,所以将数据拦截并获取图书的名称。
然后通关查询数据库,最后将查询到的所有商店信息返回给浏览器进行渲染显示。
另外,博客系统中的评论模块也是这个原理。因此,在一些站点上会爆出 XSS 漏洞。
原因可能是编码者没有对用户提交的数据进行过滤或者过滤不严,直接存储到数据库中。
2.HTML 表单这部分是给不熟悉 HTML 表单同学准备的,如果你已经掌握这部分知识。可以选择直接 ...
Django 学习笔记之后台管理
本文是 Django 学习笔记系列的第七篇。前面 6 篇文章,我们已经了解了 Django MTV 模型中三个层的内容。
这部分内容算是最基础,也是最重要。
本文的内容相对简单,阅读起来会比较轻松些。
主要是介绍下 Django 默认管理后台以及一些实用后台管理系统的第三方应用。
1.前言每个网站无论大小,大型电商网站也好,个人博客也罢,它们都是一个管理后台。
管理后台可以看做一个窗口,管理员通过它来管理以及维护网站。
Django 作为一个全能型的框架,当然也自带了一个后台管理系统。
登录后台管理希望能对前端或者数据库数据进行增加、修改、删除等工作。我们现在就激动该系统来学习。
2.激活管理界面其实 Django 默认帮我们激活 admin 管理后台。
不知你还记得上次的操作? 当新建创建应用的,需要将刚创建的 app 加入到 setting.py 文件中。
在 setting.py 文件中,你会看到前面有很多应用。
123456789INSTALLED_APPS = [ 'django.contrib.admin', 'django.c ...
Django 学习笔记之模型(下)
上篇文章讲解了 Django 如何创建模型,本文将继续讲解如何对模型进行增删改查操作。
1.前言当我们建立好数据模型,Django 会自动为我们生成一套数据库接口相关的接口。
这套接口称为 QuerySet API。
为什么叫 QuerySet ?
因为从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet。
为了方便理解,我继续使用上篇文章的例子。
另外方便我们在打印对象信息时,能得到对象的信息。
所以我们需要对之前的代码做下修改。
分别为每个模型类添加一个方法 **unicode()**。 unicode() 方法告诉 Python 如何将对象以 Unicode 的方式显示出来。
为以上三个模型添加 unicode() 函数后,就可以看到效果了:
123456789101112131415161718192021222324from django.db import modelsclass Author(models.Model): name = models.CharField(max_length=40) email = models.Emai ...
Django 学习笔记之模型(上)
上片文章讲解模板。
你本文将讲解 “MTV” 中 M 层次,即模型层(数据存取层)。
模型这内容比较多,我将其拆分为 3 个部分来讲解。
同时,文章也配套了例子,你可以通过 阅读原文 来查看。
1.编程环境因为 Django 近期推出 Django 2.0 版本, 所以有必要再说明下。
如果你是按照本系列来学习 Django 框架的话,按照前面安装 Django 的方式,你安装 Django 版本应该是最新版本,即 2.0。
那么使用最新 Django 版本来学习可以吗?如果是学习的话,不用太在意版本。
当然学习最新的较好,因为可以学习新的 API。
同时,Django 2.0 不再兼容 Python 2 了,现在学习 Python 都建议采用 Python 3版本了。
另外 Django 1.8 官方只维护到 2018 年的 4 月,1.11 是最后一个兼容 Python 2 的 Django版本。
如果是项目需要升级 Django版本,需要兼容到 Python 2,那么要考虑用 1.11 版本了。
顺便补充下本文用的一些工具的版本:Python 版本是 3.6,Mysql 版本是 ...
Django 学习笔记之模板
本文是自己 Django 学习笔记系列的第四篇原创文章。
主要接着篇文章的视图内容,讲解模板的用法。
另外也说下 Django 学习笔记系列的安排。
自己计划大概 15 篇文章的输出自己学习 Django 框架的内容,再用大概 10 篇文章进行实战开发,最后可能用少量的篇幅进行补充。
废话不多说,切回主题。
1.模板是什么通过之前文章,我们学会使用 render(request, 'content.html') 方法来返回静态页面。
但在一些页面中,页面需要根据不同场景(例如时间,角色)显示不同的数据。这就需要使用到模板(Template)。
模板通常是 HTML 文件,只不过其中带有特定的语句。
这些语句是用来存储并显示数据库中返回的数据。
另外,除了 HTML 文件外,Django的模板也能产生任何基于文本格式的文档。
我们就以一个简单的例子来开始学习模板。该模板是一段添加了些变量和模板标签的 html 文件。
如果你暂时看不懂其中的内容,没有关系,下面会逐步说明。
1234567891011121314151617181920212223242526<! ...
Django 学习笔记之视图与URL配置
本文章是自己学习 Django 框架的第三篇。前面两篇文章主要记录 Django 理论相关知识。
从本篇文章开始,将以理论和实战方式讲述 Django 框架的知识。
让我们一起来 coding 吧~
1.新建项目我们开发 Web 程序是基于 Django 框架,所以要想创建 Django 项目。
创建项目有两种方式,一种是使用 Django 管理任务 django-admin.py,另一种是借助 IDE 工具 Pycharm。
使用 django-admin.py1)新建project
在你准备存放项目的目录下,打开终端,执行新建命令。
123django-admin.py startproject Django_demo // Django_demo 为 project 的名称,你可随意命名// 如果执行失败,可以改用下面命令django-admin startproject Django_demo // Django_demo 为 project 的名称,你可随意命名
新建 Project 成功之后,你会发现目录下会多出一些文件。这些文件主要跟工程配置有关系,跟具体业 ...
Django 学习笔记之初识
上篇文章讲述 Django 环境搭建, 在文章最后部分还有 6 篇 Django 简单入门的文章。
后来我自己以一个新手的角度来阅读文章,发现前面三篇文章能被够消化吸收。
但是后三篇文章理解起来可能会有点费劲,可能是我漏写了很多细节。
因此,本文先将前三盘文章的内容做一些补充说明,降低学习成本。
1.MVC 与 MTV在 Web 服务器开发领域,MVC 模式可以算是家喻户晓。
有些书籍或者文章说 Django 是一个 MVC 开发框架,另一些文章或者博客则说 Django 是 MTV 模式。
那么 MTV 模式是什么?
Django 又究竟是哪种模式?
Django 是一个遵循 MVC 开发模式的框架 。
我们先看下 MVC 的数据流向,了解 MVC 的工作流程。
M 是 Model 的意思 ,它是一个抽象层,用来构建和操作 Web 应用中的数据。同时,Model 层跟数据库打交道的层次,执行数据库数据的增删改查操作。
在 Django 项目中,Model 层逻辑是体现在 models.py 中,models.py中定义的各种类代表数据模型 model 。每个 model 是对应数 ...
Django 学习笔记之环境搭建
古人云:功遇善其事,必先利其器。在正式学习 Django Web 框架之前,我们要把准备工作做好。
准备工作主要是搭建开发环境,具体工作是安装 Python、创建虚拟环境 venv、安装 Django、安装 IDE 工具(Pycharm)。
1.安装 Python如果你使用的桌面系统是 Windows,你需要到 Python 官网下载安装包。
Linux 和 Mac 系统都自带了 Python 运行环境。Python 分为 2 和 3 版本,目前 Python 团队即将停止维护 Python 2 版本,所以建议安装 Python 3。
目前最新版本是 3.6.4。另外,本系列文章适合具备 Python 基础的同学。
如果你对 Python 基本语法还是很懵懂,建议你先把基础知识夯实。
2.创建虚拟环境 venv一提到 Python 虚拟环境,你会惊叹说为什么不用 virtualenv?
如果你生产或开发环境需同时支持 Python 2 和 Python 3 ,那就需要 virtualenv。
我们是从零开始学习 Django,所以可以直接使用 venv。简单来说,venv 模块是 P ...
计划分享Python Web学习心得
前段时间,有个读者留言跟我说,有空出使用 Python 实现 RESTful API 的教程。我一看,这正合我意。
自己很早就想学习 Python web。
之前有简单过了解些 Django 框架基础知识。但对于 Python Web,我还是研究不够深入。
因此,打算接下来一段时间。自己学习 Python Web,并将学习心得分享出来。
自己在 Web 方面是只菜鸟,所以请老鸟轻喷。
回到刚才话题,RESTful API 是个什么东西呢?
不妨我们先看下平常的网页是怎么回事。
我们平时浏览的网站,一般分为前端和后端。我们用浏览器观看页面的内容就是前端的工作。
前端采用 Html + CSS + JavaScript 技术来呈现页面内容以及页面效果。
后端主要负责维护数据库并返回前端请求数据库的数据。
如果我们有个需求,不需要那么华丽、炫酷的页面,只需要后端返回的数据。我们把这样的网络请求称为 RESTful API。再者,REST 描述的是在网络中 Client(PC 浏览器、手机 APP 等) 和 Server的一种交互形式;REST本身不实用,实用的是 RESTful API(R ...