Django文件
App文件夹
migrations文件
- 生成models创建表的翻译语句
telemplatetags文件夹
-
telemplatetags文件夹下的文件专门用来创建自定义标签、自定义过滤器、自定义组件
1. 导入from djiago import template 2. register = tmplate.Library() 3.装饰器装饰某个函数@register.filretr(自定义过滤器)、@register.simple_tag(自定义标签)、@register.inclusion_tag(放组件html文件)(自定义组件)
admin文件
-
把数据库中的表添加到admin页面中,进行操作
from django.contrib import admin from app01 import models class UserinfoAdmin(admin.ModelAdmin): list_display = ['id','username','password'] #设置显示在列表中的字段,id为Django中的默认主键 list_editable = ['username','password','telephone','email'] #设置可编辑字段 list_per_page = 50 #设置每页显示多少数据,默认为100 ordering = ('-id',) #设置默认排序字段,负号为降序排序 fk_fields = ('machine_room_id',) #设置显示外键字段 admin.site.register(models.Userinfo,UserinfoAdmin) admin.site.register(models.Customer) admin.site.register(models.Campuses) admin.site.register(models.ClassList) admin.site.register(models.ConsultRecord) admin.site.register(models.Enrollment) admin.site.register(models.CourseRecord) admin.site.register(models.StudyRecord)
mymiddleware文件夹
-
一般用来创建中间件,需要在项目文件夹下settings文件中配置MIDDLEWARE属性,中间件才能生效
中间件文件
from django.utils.deprecation import MiddlewareMixin from django.shortcuts import redirect from django.urls import reverse import re class Auth(MiddlewareMixin): #创建的类需要继承MiddlewareMixin # white_list = ['/login/', '/register/', '/admin.*'] white_list = [reverse('login'), reverse('register'), '/admin.*'] def process_request(self,request): #定义process_request(请求时处理) current_path = request.path #当前请求路径 for re_path in self.white_list: reg = r"^%s$"%re_path # print(re.search(reg, current_path).group()) if re.search(reg, current_path): break else: name = request.session.get('name') if not name: return redirect('login')
settings配置文件
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'app01.mymiddleware.zjj.Auth' #自定义中间件 ]
models文件
-
创建数据库中的数据表
settings配置文件添加数据库配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #设置数据库为Mysql 'NAME':'crm', #数据库名 'HOST':'127.0.0.1', #数据库IP 'PORT':3306, #数据库端口 'USER':'root', #数据库用户 'PASSWORD':'123' #数据库密码 } }
在model文件中导入 from django.db import models,并创建数据表
from django.db import models class Userinfo(models.Model): username = models.CharField(max_length=32,unique=True) password = models.CharField(max_length=32) telephone = models.CharField(max_length=32,db_index=True) email = models.CharField(max_length=32) is_active = models.BooleanField(max_length=32,default=True) def __str__(self): return self.username
在app应用文件夹下的--init--文件中导入
import pymysql pymysql.install_as_MySQLdb()
在终端执行数据库执行指令
python manage.py makemigrations python manage.py migrate
Views文件
-
用来封装视图函数,试图函数分为cbv和fbv
CBV
from django.views import View class Register(View): #类继承form django.views import View def get(self,request): pass def post(self,request): pass
FBV
def home(request): if request.method == 'GET': pass else request.mothed == "POST": pass
项目文件夹
settings文件
- settings文件用来配置基本信息:
DATABASES配置数据库相关,
STATICFILES_DIRS配置静态文件夹的路径,
STATIC_URL配置静态文件夹的别名,
INSTALLED_APPS配置app应用文件,
MIDDLEWARE配置中间件,
TEMPLATES配置template文件夹的一些信息,
APPEND_SLASH =False # settings文件夹下写这句话,如果别人请求我的路径的时候,你不要自己处理别人输入的路径最后面的/了
urls文件
-
路径文件用来分发路径
from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login/', views.Login.as_view(), name='login'), #登录 url(r'^logout/', views.logout, name='logout'), #注销 url(r'^register/', views.Register.as_view(), name='register'), #注册
statefile文件夹
-
用来放置静态文件,如css和js文件、图片。需要在settings文件中配置STAICFIELS属性
settings配置
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR,'statefile') ]
templates文件夹
- 放置html文件,可以进行模板渲染