1.在django的使用mysql数据库
(1)在settings.py中把默认数据库设置为mysql。DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
'ENGINE': 'django.db.backends.mysql',
'NAME': 'book', # 设置使用数据库的名字,数据库需要手动创建
'USER': 'root', # 数据库用户名
'PASSWORD': 123, # 用户密码
'HOST': 'localhost', # 指定mysql数据库所在的电脑ip
'PORT': 3306, # 指定数据库的端口
}
}
(2)安装pymysql
pip3 install pymysql
(3)在我们的blog目录下的__init__.py文件中加入:
import pymysql
pymysql.install_as_MySQLdb()
(4)如果在执行python manage.py runserver后,访问服务器成功,则说明配置mysql成功。
2.通过实例理解页面重定向
(1)新建一个booktest应用(记得在settings.py里面对应用进行注册),在我们的应用中编写我们的models.py,在进行数据迁移,创建数据表:from django.db import models
# Create your models here.
class BookInfo(models.Model):
btitle = models.CharField(max_length=20)
bdate = models.DateField()
brend = models.IntegerField(default=0) # 阅读量
bcomment = models.IntegerField(default=0) # 评论量
isDelete = models.BooleanField(default=False) # 软删除
class HeroInfo(models.Model):
hname = models.CharField(max_length=20)
hgender = models.BooleanField(default=False)
hcomment = models.CharField(max_length=128)
hbook = models.ForeignKey('BookInfo')
isDelete = models.BooleanField(default=False)
(2)在templates中新建一个booktest的文件夹,在booktest中创建我们的主页index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/create">新增</a>
<ul>
{% for book in books %}
<li>{{ book.btitle }}--<a href="/delete{{ book.id }}">删除</a>></li>
{% endfor %}
</ul>
</body>
</html>
(3)在booktest应用中的views.py中创建视图函数
from django.shortcuts import render, redirect
from booktest.models import *
from datetime import date
from django.http import HttpResponseRedirect
# Create your views here.
def index(request):
books = BookInfo.objects.all()
return render(request, 'booktest/index.html', {'books': books})
def create(request):
b = BookInfo()
b.btitle = '流星蝴蝶剑'
b.bdate = date(1990, 1, 1)
b.save()
return redirect('/index')
def delete(request, bid):
book = BookInfo.objects.get(id=bid)
book.delete()
return redirect('/index')
(4)配置路由
在项目的路由中新增
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('booktest.urls'))
]
在我们的booktest应用中新增一个urls.py,并写入一下内容
from django.conf.urls import url
from booktest import views
urlpatterns = [
url(r'^create$', views.create),
url(r'^index$', views.index),
url(r'^delete(\d+)$', views.delete)
]
(5)刷新我们的页面
我们可以发现当我们点击新增和删除时,会‘刷新’页面,而不是跳转到其他页面,因此,我们可以总结出:
重定向就是当浏览器发送请求时,我们的视图函数对他进行处理,但是不返回内容,而是跳转到其他页面。