更多详细内容请参考:Django 教程 | 菜鸟教程 (runoob.com)
Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template)。
查看版本:
python -m django --version
启动项目:
python manage.py runserver
数据迁移
#生成迁移文件
python manage.py makemigrations
#执行迁移
python manage.py migrate
创建应用:
python manage.py startapp App
Django框架流程图:
创建数据库模型:
class UserModel(models.Model):
name = models.CharField(max_length=30, unique=True)
age = models.IntegerField(default=18)
sex = models.CharField(max_length=20)
is_delete = models.BooleanField(default=False)
后台管理:
#注册对应模型
admin.site.register(UserModel)
#创建超级管理员的账号和密码
python .\manage.py createsuperuser
Django路由:
路由简单的来说就是根据用户请求的 URL 链接来判断对应的处理程序,并返回处理结果,也就是 URL 与 Django 的视图建立映射关系
掌握对数据库的增删改查Django ORM – 单表实例 | 菜鸟教程 (runoob.com)
分页器:
# 分页功能
def paginate(request, page=1):
per_page = 10
persons = PersonModel.objects.all()
persons = persons[(page - 1) * per_page:page * per_page]
total = PersonModel.objects.count()
total_page = math.ceil(total / per_page)
pages = range(1, total_page + 1)
return render(request, 'paginate.html', {"persons": persons,
"pages": pages})
from django.core.paginator import Paginator
# 自动分页
def paginate2(request, page=1):
per_page = 10
all_data = PersonModel.objects.all()
paginator = Paginator(all_data, per_page)
persons = paginator.page(page)
pages = paginator.page_range
return render(request, 'paginate.html', {"persons": persons,
"pages": pages})
#前端代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style>
ul {list-style: none;padding: 0}
.btns li{
float: left;
margin: 5px;
}
hr{
clear: both;
}
</style>
<body>
<h2>分页功能</h2>
<hr>
<ul class="btns" >
{% for page in pages %}
<li>
{# <a href="{% url 'paginate' page%}"><button>{{ page }}</button></a>#}
<a href="{% url 'paginate2' page%}"><button>{{ page }}</button></a>
</li>
{% endfor %}
</ul>
<hr>
<ul>
{% for person in persons %}
<li>{{ person.name }}-{{ person.age }}</li>
{% endfor %}
</ul>
</body>
</html>