day2-admin管理后台

admin管理后台

1.基于django初始化一个项目

1.conda activate 虚拟名字#进入虚拟环境
2.django-admin startproject blog#创建一个项目blog
3.cd blog #进入blog项目文件夹中
4.python manage.py startapp app的名字#创建一个app
  1. 初始化数据库(django自带的sqlite)

1.python manage.py migrate#django项目自带sqlite,初始化数据库
2.第一个启动项目会自动创建数据库

3.创建超级管理用户

1.python manage.py #查看命令选项
2.python manage.py createsuperuser#创建超级管理用户
  • python manage.py createsuperuser#创建超级管理用户

1721893820879

4.汉化配置(setting.py)

1721894842749

5.创建app(模型类)(myapp/models.py)

from django.db import models

# Create your models here.
class Tag(models.Model):
    '''标签表'''
    tag_name=models.CharField(max_length=20)#标签名字


class Category(models.Model):
    '''分类表'''
    category_name=models.CharField(max_length=20)#分类


class Post(models.Model):
    ''''''
    title=models.CharField(max_length=20)#文章标题
    content=models.TextField()#文章内容
    desc=models.CharField(max_length=100)
    tag=models.ManyToManyField(Tag)#多对多
    category=models.ForeignKey(Category,models.CASCADE)#一对多 分类

6.myapp/admin.py中注册模型类

from django.contrib import admin
from .models import Tag,Category,Post #.表示同级目录
# Register your models here.
admin.site.register(Tag)#admin后台注册
admin.site.register(Category)#
admin.site.register(Post)

前端报错:

OperationalError at /admin/myapp/tag/
no such table: myapp_tag

原因是新建数据表需要迁移。

7.数据表迁移(每次更新数据表都需要

#1.生成迁移表(只是生成了一个py文件)
python manage.py makemigrations
#2.执行迁移(数据库更新)
python manage.py migrate

8.MVT的综合使用

1.myapp/models.py同上(M)

2.myapp/views.py(V)

from django.shortcuts import render
from django.http import  HttpResponse
from .models import *
# Create your views here.

def index(request):
    post_list=Post.objects.all()#获取所有文章实例
    context={
        'text':post_list,
    }
    return render(request,'index2.html',context=context)

3.templates/index.html(T)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>欢迎来到学习Django框架学习</h1>
{% for p in text %}
<div style="background-color: pink">
<p>title:{{ p.title }}</p>
<p>content:{{ p.content }}</p>
    <p>tag:{{ p.tag }}</p>
    <p>desc:{{ p.desc }}</p>
{#<p>且</p>#}
</div>
{% endfor %}

</body>
</html>
posted @ 2024-08-04 22:29  奋斗的独角兽  阅读(15)  评论(0)    收藏  举报