django基本命令
- 新建一个django工程项目
django-admin startproject django_vue_blog
- 项目内新建一个app
python manage.py startapp blog
- 运行项目
python manage.py runserver
- 创建后台用户
python manage.py createsuperuser
- 创建数据库迁移文件
python.exe manage.py makemigrations
- 执行数据库迁移
python.exe manage.py migrate
django基本配置
在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', ], }, }, ]
配置静态文件和媒体文件位置,在根目录创建uploads文件夹,在app目录下创建static文件夹
STATIC_URL = '/static/' STATICFILES_DIRS = [ BASE_DIR / "static", ] MEDIA_URL = '/uploads/' MEDIA_ROOT = os.path.join(BASE_DIR,'uploads').replace('\\','/')
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模式,目前我们实现了如下效果:
- 首页显示所有班级和用户
- 点击不同的班级跳转到classes页面,显示该班级下的用户