django mysql 书籍_第一个django网站实战项目,图书网站

涉及的知识点:

1.ORM框架的基本概念

2.Django数据库管理系统的基本使用

3.Django后台管理系统的基本使用

4.Django模板系统的基本使用

5.Django视图系统的基本使用

6.Django路由的基本使用

7.Django如何运行测试

8.Linux中如何创建虚拟环境

9.个人实战总结

下面,我分别进行总结:

1.ORM框架的基本概念:

ORM实际上可以看成是一种镜子,或者说一种sql代码的翻译机,能够将django中的sql语句翻译成数据库的语句

有了ORM以后,你只需要学会Django中如何定义数据和增删改查,而不用记其他的任何数据库知识,你就能够实现对数据库的操作,是一种非常强大的功能.

那么究竟怎么使用呢,我分别上截图和源码

所有的数据库都被映射成了Django中的一个特殊的类,这个类必须继承models.Modle

类的的属性是由models的属性来定义的

OK,上一下源码

from django.db import models

# Create your models here.

# 图书类

class BookInfo(models.Model):

"""图书模型类"""

# 图书名称

btitle = models.CharField(max_length=20)

# 出版日期

bpub_date = models.DateField()

def __str__(self):

return self.btitle

"""

英雄人物类

英雄名 hname

性别 hgender

年龄 hage

备注 hcomment

关系属性 book

"""

class HeroInfo(models.Model):

"""英雄人物模型类"""

# 英雄名称

hname = models.CharField(max_length=20)

# 性别,布尔值,默认男

hgender = models.BooleanField(default=False)

# 备注

hcomment = models.CharField(max_length=20)

# 关系属性

hbook = models.ForeignKey('BookInfo', on_delete=None)

def __str__(self):

return self.hname

2.Django数据库管理系统的基本使用

对于数据库的增删改查,需要创建模型类的实例

所有的操作方法和类的操作方法都一样

比如说

b=BookInfo()

b.btitle='天龙八部'

b.bpub_date=date(1999,1,1)

b.save()

这里的save()是提交数据保存的方法,直接存进数据库

如果要删除,直接使用delete()方法

在这里,有个比较简单的方法,那就是注册一个后台管理类,直接进后台使用图形化界面操作

这个由于是shell操作,所以没有截图也没有源码

3.Django后台管理系统的基本使用

django后台管理系统是django自带的管理系统,还是很实用的

废话不多说,直接上截图和源码,以及详细说明

没有错,所有的关于后台管理的操作,都写在admin这个模块中

要注册后台管理类,必须先导入你要管理的模型类

如果你要自定义管理类,必须继承admin.ModelAdmin这个模型类,然后固定格式写list_display=[你要后台显示的数据]

最后,你必须要注册,格式也很固定

admin.site.register(模型类,管理模型类) 管理模型类可以没有

ok,废话不多说,上源码,大家参考参考

from django.contrib import admin

# Register your models here.

"""

后台管理相关

本地化

修改settings

创建管理员

python manage.py createsuperuser

注册模型类

后台默认显示模型对象的字符串

通过重写 str 来改变

"""

from booktest.models import BookInfo, HeroInfo

# 自定义管理页面 控制后台的显示内容

class BookInfoAdmin(admin.ModelAdmin):

"""图书模型管理类"""

list_display = ['id', 'btitle', 'bpub_date']

class HeroInfoAdmin(admin.ModelAdmin):

"""英雄人物模型管理类"""

list_display = ['id', 'hname', 'hgender', 'hcomment']

# 注册

admin.site.register(BookInfo, BookInfoAdmin)

admin.site.register(HeroInfo, HeroInfoAdmin)

4.Django模板系统的基本使用

django的模板本质也就是HTML文件,不过,他非常的有特色,如果你学过java就知道什么是jsp文件,学过PHP就知道什么是PHP文件,django的模板很神奇,它明明是以.html结尾的,可是也能够实现jsp,php这样的功能,比如看这个截图

没错,他能够写后台代码,能够实现遍历,循环,判断,传递变量等功能.的却是一个非常强大的模板功能,我是挺喜欢的,废话不多说,上源码供大家参考一下

显示图书信息

.menu{

width: 694px;

height: 50px;

/*background-color: chocolate;*/

/*去掉小圆点*/

list-style: none;

/*特殊的div*/

margin: 50px auto 0;

padding: 0;

}

.menu li{

width: 98px;

height: 48px;

border: 1px solid gold;

background-color: white;

/*排成一行*/

/*display: inline-block;*/

float: left;

margin-left: -1px;

}

.menu li a{

/*background-color: gold;*/

display: block;

width: 98px;

height: 48px;

text-align: center;

line-height: 48px;

text-decoration: none;

font-size: 16px;

font-family: "Microsoft Yahei";

}

.menu li a:hover{

background-color: gold;

color: white;

}

图书信息如下

{% for book in books %}

{{ book.btitle }}

{% endfor %}

{% for book in books %}

{{ book.btitle }}

{% endfor %}

5.Django视图系统的基本使用

视图也就是django中的view,是控制显示的重要组成部分,几乎所有的视图逻辑都是写在view里面的,可以以函数的形式来定义,也可以以类的形式来定义,今天是第一个实战项目,还是以函数的形式来定义的

废话不多说,上截图和源码

视图函数有两个极其重要,必不可少的组成部分,一个是请求,一个是响应,请求一般是request的,是函数的第一个参数,响应一般是返回值,经常以render的形式来渲染返回.不过有时候会重定向,以及其他的,这种情况相对较少.

废话不多说,直接上源码供大家参考

from django.http import HttpResponse

from django.shortcuts import render

from booktest.models import BookInfo # 导入图书信息

# Create your views here.

"""

视图函数处理模块

可以传变量

可以写类似于编程语言的代码

创建模板文件夹

"""

# 定义视图函数 HttpRequest

def index(request):

# 进行处理,和M和T进行交互

# return HttpResponse('lxgzhw')

return render(request, 'index.html', {

'hello': '大鹏',

})

def index2(request):

# 进行处理,和M和T进行交互

return render(request, 'booktest/index2.html')

def index3(request):

# 进行处理,和M和T进行交互

return render(request, 'booktest/index3.html')

def detail(request, bid):

# 图书关联的英雄信息

book = BookInfo.objects.get(id=bid)

# 查询图书相关的英雄信息

heros = book.heroinfo_set.all()

return render(request, 'booktest/detail.html', {

'book': book,

'heros': heros,

})

def show_books(request):

# 显示图书的信息

"""

通过

:param request:

:return:

"""

books = BookInfo.objects.all()

# 使用模板

return render(request, 'booktest/show_books.html', {

'books': books,

})

6.Django路由的基本使用

路由并不复杂,路由器嘛,就是用来转发的,是视图和模板的对应关系,没有它是万万不能的,没有路由,框架就无法知晓我们定义的视图和模板的对应关系,无法完成渲染,就会报错.

废话不多说,直接上截图和源码

django1.*一般都是用url来做路由,django2.*一般都是用path和re_path来做路由,关于这两个有分不清的可以留言,我之前也弄了很久才明白.

路由其实比较简单,如果要实现路由分发就用include的,什么是路由分发呢,就是把请求转到子项目,当你的项目很庞大的时候,这是必备技术.

一般的路由,就是你定义什么视图,就写什么路由就写了,你定义的就是用户在浏览器输入的请求地址,底层原理是通过正则表达式来过滤的.

如果要提取参数,就用正则表达式的分组来实现.

ok,废话不多说,上源码

from django.conf.urls import url

from booktest import views

"""

严格匹配开头和结尾

"""

appname = 'booktest'

urlpatterns = [

# 通过url

url(r'^index$', views.index),

url(r'^index2$', views.index2),

url(r'^index3$', views.index3),

# 显示图书信息

url(r'^books$', views.show_books),

url(r'^books/(\d+)$', views.detail),

url(r'^$', views.index),

]

7.Django如何运行测试

运行很简单,把下面的命令复制过去,百试不爽

python manage.py makemigrations

python manage.py migrate

python manage.py runserver

8.Linux中如何创建虚拟环境

创建虚拟环境一般是解决版本不同的问题,当然,虚拟环境相互独立,也是不污染主环境的重要解决方法,安装虚拟环境很简单,记住下面的命令

sudo pip install virtualenv

sudo pip install virtualenvwrapper

export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh

mkvirtualenv -p python3 django1.1

进入虚拟环境

workon 名字

退出

deactivate

删除

rmvirtualenv 名字

9.个人实战总结

这个项目看起来是做图书项目,十分简单,没有涉及到前端的css和js这种重要的内容,也没用引入图片等静态资源,所以最终结果是网站十分简陋,惨不忍睹,不过我机智的最红还是美化了一下,整体效果还是很不错的,看一下最终的运行效果吧.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值