1.創建項目 並在settings.py 設置和其他基本操作
2.往數據庫裏添加數據,此次數據庫用的是mysql數據庫,
如果使用mysql數據庫,要注意
①在創建的工程文件中的init文件中 要引入mysql
import pymysql
pymysql.install_as_MySQLdb()
而且在settings.py中爲數據庫設置相關信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'django',
'HOST':'localhost',
'USER':'root',
'PASSWORD':'891811395',
'PORT':3306
}
}
②在app文件夾下models.py中 設置字段 以便數據庫建表
from django.db import models
# Create your models here.
class Goods(models.Model):
name = models.CharField(max_length=100)
des = models.CharField(max_length=1000)
class Meta:
db_table = 'goods'
def index(request):
利用隨機數添加數據
import random
def index(request):
# for x in range(200):
# good = Goods(name='good%s'%x
# ,des = '該商品物美價廉,現在只需要{}元'.format(random.randint(10,100)))
# good.save()
return HttpResponse('數據添加成功')
3.
def select(request):在此方法下,先獲取總的數據 good_list = Goods.objects.all()
4.設置分頁顯示規則:paginator = Paginator(good_list ,12 ,3) 意爲:一頁12個數據,當最後一條數據少於3條時,將數據併到上頁
5.網址中頁碼值將會有三種情況
try:
# GET請求方式 get()獲取指定key值對應的value值
# 獲取index的值 如果沒有 則設置使用默認值1
# 有值的話 在下面傳遞number到index.html
num = request.GET.get('index','1')
number = paginator.page(num)
except PageNotAnInteger:
# 如果輸入的頁碼數不是整數,那麼顯示第一頁數據
number = paginator.page(1)
except EmptyPage:
# 如果頁碼數不在當前頁碼範圍內 ,則顯示最後一頁
# paginator.num_pages 獲取當前總頁數
# paginator.page() 獲取指定的某一頁
number = paginator.page(paginator.num_pages)
# jiang 當前頁頁碼 and 當前頁數據 傳遞到html
return render(request,'index.html',{'page':number,'paginator':paginator})
6.設置頁面
index.html中,使用靜態資源時 不光要在html頁面加載靜態資源,在settings.py中 也要進行設置
# 設置的是app裏面的靜態資源
STATIC_URL = '/static/'
# 設置的是項目裏的靜態資源、
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static')
]
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">
<title>淘寶{{page}}</title>
</head>
<body>
{% for good in page.object_list %}
<h4>{{good.name}} - {{good.des}}</h4>
{% endfor %}
<ul class="pagination">
{# 如果當前頁還有上一頁 #}
{% if page.has_previous %}
<li>
{# 點擊a標籤 跳轉到上一頁鏈接 ?index= 爲地址後面拼接的參數 #}
<a href="?index={{page.previous_page_number}}">上一頁</a>
</li>
{% else %}
{# 如果沒有上一頁,則按鈕不可點擊 #}
<li class="disabled">
<a href="#">上一頁</a>
</li>
{% endif %}
{% for page_number in paginator.page_range %}
{# page.number 獲取當前頁的頁碼 #}
{% if page_number == page.number %}
<li class="active" >
<a href="?index={{page_number}}">{{page_number}}</a>
</li>
{% else %}
<li>
<a href="?index={{page_number}}">{{page_number}}</a>
</li>
{% endif %}
{% endfor%}
{% if page.has_next %}
<li>
<a href="?index={{page.next_page_number}}">下一頁</a>
</li>
{% else %}
<li class="disabled">
<a href="#">下一頁</a>
</li>
{% endif %}
</ul>
<script src="{% static 'js/jquery.js' %}"></script>
<script src="{% static 'js/bootstrap.js' %}"></script>
</body>
</html>
7.運行項目前需要,先查看可遷移文件 終端命令python manage.py makemigrations
然後遷移文件 終端命令:python manage.py migrate
啓動運行服務器 python manage.py runserver (默認8000 也可自行設置如8080)
在網頁輸入網址 localhost:8000 進行操作即可