django基本命令

  1. 新建一个django工程项目django-admin startproject django_vue_blog
  2. 项目内新建一个apppython manage.py startapp blog
  3. 运行项目python manage.py runserver
  4. 创建后台用户python manage.py createsuperuser
  5. 创建数据库迁移文件python.exe manage.py makemigrations
  6. 执行数据库迁移python.exe manage.py migrate

image.png

django基本配置

  1. 在settings.py中配置模板文件目录,在app目录下创建templates文件夹

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR,'tamplates').replace('\\','/')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
  2. 配置静态文件和媒体文件位置,在根目录创建uploads文件夹,在app目录下创建static文件夹

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        BASE_DIR / "static",
    ]
    MEDIA_URL = '/uploads/'
    MEDIA_ROOT = os.path.join(BASE_DIR,'uploads').replace('\\','/')
  3. urls.py中配置路径

    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = [
        path('admin/', admin.site.urls),
    ]  + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \
        + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

models配置示例

class SiteInfo(models.Model):
    title = models.CharField(max_length=50,null=True,blank=True)
    logo = models.ImageField(upload_to='logo/',null=True,blank=True)

    def __str__(self):
        return self.title

views配置示例

from blog.models import SiteInfo,Classes,UserInfo

def classes(request):
    siteinfo = SiteInfo.objects.all()[0]
    #print(siteinfo.title,siteinfo.logo)
    classinfo = Classes.objects.all()
    choosed = Classes.objects.get(id=request.GET['id'])
    userinfo = UserInfo.objects.filter(belong=choosed)
    data = {
        'siteinfo':siteinfo,
        'classinfo':classinfo,
        'userinfo':userinfo,
        'choosed':choosed
    }
    return render(request,'classes.html',data)

模板配置示例

{% extends "index.html" %}
{% block classname %}
  {{ choosed.text }}
{% endblock classname %}

admin 配置示例

from django.contrib import admin
from blog.models import SiteInfo,Classes,UserInfo

# Register your models here.

admin.site.register(SiteInfo)
admin.site.register(Classes)
admin.site.register(UserInfo)

效果

通过django的mvc模式,目前我们实现了如下效果:

  1. 首页显示所有班级和用户
  2. 点击不同的班级跳转到classes页面,显示该班级下的用户

image.png

image.png

最后修改:2021 年 04 月 23 日
如果觉得我的文章对你有用,请随意赞赏