Django 搭建简易博客之三 - 使用动态URL
Django 搭建简易博客之三 - 使用动态URL
动态 URL 技术运行已经做好的博客,会发现只有主页一个空盒子。所以接下来我们要为每一篇文章增加一个独立的页面来展示其详细内容。
如果我们给每一篇文章增加一个 view 层函数逻辑,然后设置一个独立的 url,那样的话工作太过于繁琐,并且项目的耦合性着实太强,复用性很低。Django 为我们提供了一个很优雅的解决方法,即 动态URL。
我们来修改一下 my_blog/article/views.py 的代码:
123456789101112131415from django.shortcuts import renderfrom django.http import HttpResponsefrom article.models import Articlefrom datetime import datetimefrom django.http import Http404# Create your views here.def home(request): post_list = Article.objects.a ...
Django 搭建简易博客之二 - 完成前端渲染
Django 搭建简易博客之二 - 完成前端渲染
Views 和路由设置由之前的教程,我们得知网页的逻辑如下:
request 进来 -> 从服务器获取数据 -> 处理数据 -> 把网页呈现出来
url 设置相当于从客户端先个服务器发出 request 请求的入口,并用来知名要调用的程序逻辑。views 用来处理程序逻辑,然后传递数据到 template。template 一般为 html + css 的形式,主要是呈现给用户的表现形式。我们已经完成了底层数据(文章列表)的基础。所以由内向外,开始构建数据处理。下面我们来编辑 views.py 的逻辑并规划路由。
编辑 my_blog/article/views.py 中编写简单的逻辑:
12345678910111213from django.shortcuts import renderfrom django.http import HttpResponsefrom article.models import Article# Create your views here.def home(request): ...
Django 搭建博客之一 - 基础数据构建
Django 搭建博客之一 - 基础数据构建
构建基础工程从本章节开始,我们通过之前学到的知识来构建一个简易的博客项目。希望从中,各位学员可以继续巩固 Django 知识,并完成第一个 Django 小项目。
话不多说,正式开始。我们在 /home/shiyanlou/ 目录下创建一个名为 my_blog 的 Django 项目:
1$ django-admin.py startproject my_blog
进入 my_blog 目录中建立一个 article app:
1python manage.py startapp article
之后我们需要在 settings.py 中添加这个 app:
123456789INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'djang ...
MySQL 服务安装及命令使用(进阶篇)
MySQL 服务安装及命令使用(进阶篇)
MySQL介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
安装MySQL实验楼环境已经为大家安装好了 MySQL,无需大家再次安装,以下安装仅用于大家学习使用
Windows下安装可以从官网下载MySQL安装软件包。在Windows中安装MySQL时,新用户可以使用MySQL安装帮助和MySQL Configurati ...
MySQL 其他基本操作(基础篇)
MySQL 其他基本操作(基础篇)
索引索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。
当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录。这样做会消耗大量数据库系统时间,并造成大量磁盘 I/O 操作。
而如果在表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速找到表中的数据,可以大大加快查询速度。
对一张表中的某个列建立索引,有以下两种语句格式:
123ALTER TABLE 表名字 ADD INDEX 索引名 (列名);CREATE INDEX 索引名 ON 表名字 (列名);
我们用这两种语句分别建立索引:
123ALTER TABLE employee ADD INDEX idx_id (id); #在employee表的id列上建立名为idx_id的索引CREATE INDEX idx_name ON employee (name); #在employee表的name列上建立名为idx_name的索引
索引的效果是加快查询速度, ...
MySQL 数据库及表的修改和删除(基础篇)
MySQL 数据库及表的修改和删除(基础篇)
对数据库的修改使用命令 SHOW DATABASES; 可以看到刚才运行MySQL-05.sql 文件生成的两个数据库:
现在我们运行命令删除名为 test_01 的数据库:
1DROP DATABASE test_01;
现在再次使用命令 SHOW DATABASES; 可以发现,test_01 数据库已经被成功删除:
对一张表的修改重命名一张表重命名一张表的语句有多种形式,以下 3 种格式效果是一样的:
12345RENAME TABLE 原名 TO 新名字;ALTER TABLE 原名 RENAME 新名;ALTER TABLE 原名 RENAME TO 新名;
使用命令尝试修改 table_1 的名字为 table_2 :
删除一张表删除一张表的语句,类似于刚才用过的删除数据库的语句,格式是这样的:
1DROP TABLE 表名字;
比如我们把 table_2 表删除:
对一列的修改(即对表结构的修改)对表结构的修改,是本节实验的难点,有时候一些小的错误会造成不可挽回的后果,所以请细心操作。另外需要注意,不是必需尽量避免更改 ...
MySQL SELECT 语句详解(基础篇)
MySQL SELECT 语句详解(基础篇)
在数据库操作语句中,使用最频繁,也被认为最重要的是 SELECT 查询语句。之前的实验中,我们已经在不少地方用到了 SELECT * FROM table_name; 这条语句用于查看一张表中的所有内容。
而 SELECT 与各种限制条件关键词搭配使用,具有各种丰富的功能,这次实验就进行详细介绍。
基本的SELECT语句SELECT 语句的基本格式为:
1SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
如果要查询表的所有内容,则把 要查询的列名 用一个星号 * 号表示(实验2、3中都已经使用过),代表要查询表中所有的列。
而大多数情况,我们只需要查看某个表的指定的列,比如要查看employee 表的 name 和 age:
1SELECT name,age FROM employee;
数学符号条件SELECT 语句常常会有 WHERE 限制条件,用于达到更加精确的查询。WHERE限制条件可以有数学符号 (=,<,>,>=,<=) ,刚才我们查询了 name 和 age,现在稍作修改:
1SE ...
MySQL 挑战:搭建一个简易的成绩管理系统的数据库
MySQL 挑战:搭建一个简易的成绩管理系统的数据库
介绍现需要构建一个简易的成绩管理系统的数据库,来记录几门课程的学生成绩。数据库中有三张表分别用于记录学生信息、课程信息和成绩信息。
数据库表的数据如下:
学生表(student):学生 id 、学生姓名和性别
课程表:课程 id 和课程名
成绩表:成绩 id 、学生 id 、课程 id 和分数
服务器中的 MySQL 还没有启动,请注意 MySQL 的 root 账户默认密码为空。
目标1.MySQL 服务处于运行状态
2.新建数据库的名称为 gradesystem
3.gradesystem 包含三个表:student、course、mark;
student 表包含3列:sid(主键)、sname、gender;
course 表包含2列:cid(主键)、cname;
mark 表包含4列:mid(主键)、sid、cid、score ,注意与其他两个表主键之间的关系。
4.将上述表中的数据分别插入到各个表中
提示
建立表时注意 id 自增和键约束
每个表插入语句可通过一条语句完成
练习脚本内容
12345678910 ...
MySQL SQL 的约束(基础篇)
MySQL SQL 的约束(基础篇)
约束分类听名字就知道,约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。
在MySQL中,通常有这几种约束:
约束类型:
主键
默认值
唯一
外键
非空
关键字:
PRIMARY KEY
DEFAULT
UNIQUE
FOREIGN KEY
NOT NULL
建立含约束的表为了方便介绍这几种约束,我们先建立一个数据库。
注:如果你是从上一节直接进入本节进行学习的,请先删除上一节建立的数据库mysql_shiyan,删除语句为DROP DATABASE mysql_shiyan;。
当然不用你一行一行地输入命令搭建这个数据库,实验楼已经为你准备好了。首先打开 Xfce 终端,输入命令进入 /home/shiyanlou/Desktop 目录:
1cd Desktop
使用 git 命令将需要的数据文件下载到本地文件夹:
1git clone https://github.com/shiyanlou/SQL3
下载完成后,输入命令开启 MySQL 服务并使用 r ...
MySQL 创建数据库并插入数据(基础篇)
MySQL 创建数据库并插入数据(基础篇)
在使用实验楼 Linux 环境进行本次实验之前,先用以下两条命令打开MySQL 服务并使用 root 登录:
12345# 打开 MySQL 服务sudo service mysql start #使用 root 用户登录,密码为空mysql -u root
后续的实验都在 MySQL 的控制台输入命令进行操作。
新建数据库首先,我们创建一个数据库,给它一个名字,比如 mysql_shiyan,以后的几次实验也是对 mysql_shiyan 这个数据库进行操作。
语句格式为 CREATE DATABASE <数据库名字>;,(注意不要漏掉分号 ;),前面的 CREATE DATABASE 也可以使用小写,具体命令为:
1CREATE DATABASE mysql_shiyan;
创建成功后输入命令 show databases; (注意不要漏掉;)检查一下:
在大多数系统中,SQL 语句都是不区分大小写的,因此以下语句都是合法的:
1234CREATE DATABASE name1;create database ...