• Django文件夹


    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文件,可以进行模板渲染
  • 相关阅读:
    ActiveX版本升级步骤
    转 .NET 2.0中串口通讯类SerialPort用法整理
    解决“请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析”
    Padding is invalid and cannot be removed 解决方法
    【转】Umbraco 4 安装 中文教程
    在windows 2008 装oracle 10g
    使用Synctoy进行数据同步
    windows server 2008 多用户远程登录设置
    你好,博客园!
    使Ruby在OS X的控制台输出中使用颜色
  • 原文地址:https://www.cnblogs.com/Nayears/p/12161561.html
Copyright © 2020-2023  润新知