• django项目配置


    1.django的sttings配置

       1)注解MIDDLEWARE 内的一个路径

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        # 'django.middleware.csrf.CsrfViewMiddleware',# 如果这个不注解的话,前端使用form表单和ajax传输数据时要添加csrf_token,为了方便传输数据测试时可以注解,实际开发不用注解,
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    

      

      2)建立项目后往sttings.py文件内结尾添加

    STATICFILES_DIRS=(
        os.path.join(BASE_DIR,'static'),
    )

         添加好后可以在项目内建立static模块,用来存放前端css,js等文件

     3)sttings.py配置数据库

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'books',  ## 数据库名称
            'USER': 'root',
            'PASSWORD': '123',  ## 安装 mysql 数据库时,输入的 root 用户的密码
            'HOST': '127.0.0.1',
        }
    }
    

      

    4)指定后台数据库,是在当前目录下的 __init__.py文件中添加

    import pymysql
    pymysql.install_as_MySQLdb()
    

    5)Terminal创建app

    python manage.py startapp 自定义app名称
    创建app的目录结构
    		admin.py : 写和django-admin相关的配置
    		apps: 对app的配置
    		models: 数据表模型 (********)
    		tests: 测试
    		views: 视图函数 (*******)    
    

     

    6)sttings.py注册app

    INSTALLED_APPS = [
            'django.contrib.admin',
    'django.contrib.auth',
    		'django.contrib.contenttypes',
    		'django.contrib.sessions',
    		'django.contrib.messages',
    		'django.contrib.staticfiles',
    		'app02',自己注册的
    		'app03',自己注册的
    ]

    7)路由分组

    urls.py

    url(r'^app02/', include('app02.urls')),
    url(r'^app03/', include('app03.urls')),

    app下的路由

    from app02.views import *
    url(r'^index/', index)),
    url(r'^login/', login)),
    

     这样设置后访问路径是:127.0.0.1:8000/app02/index

    8)models.py创建表

    class jurisdiction(models.Model):
         jname=models.CharField(max_length=20,null=True)
         path=models.CharField(max_length=100,null=True)
         jur_id=models.IntegerField()
    

    9)在pycharm内的django项目下的Terminal框内输入命令 

    python  manage.py makemigrations
    					
    python manage.py migrate #如果只输入这个命令的话,只会导入初始的auth相关的数据库,不会导入自己建立的数据库

    10)sttings.py设置session的几种方式

    1. SESSION_ENGINE = 'django.contrib.sessions.backends.db'   # 引擎(默认)
         
    				SESSION_COOKIE_NAME = "sessionid"                       # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
    				SESSION_COOKIE_PATH = "/"                               # Session的cookie保存的路径(默认)
    				SESSION_COOKIE_DOMAIN = None                             # Session的cookie保存的域名(默认)
    				SESSION_COOKIE_SECURE = False                            # 是否Https传输cookie(默认)
    				SESSION_COOKIE_HTTPONLY = True                           # 是否Session的cookie只支持http传输(默认)
    				SESSION_COOKIE_AGE = 1209600                             # Session的cookie失效日期(2周)(默认)
    				SESSION_EXPIRE_AT_BROWSER_CLOSE = False                  # 是否关闭浏览器使得Session过期(默认)
    				SESSION_SAVE_EVERY_REQUEST = False                       # 是
    

      

    2. SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  # 引擎
    					SESSION_CACHE_ALIAS = 'default'                            # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
    				 
    				 
    					SESSION_COOKIE_NAME = "sessionid"                        # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
    					SESSION_COOKIE_PATH = "/"                                # Session的cookie保存的路径
    					SESSION_COOKIE_DOMAIN = None                              # Session的cookie保存的域名
    					SESSION_COOKIE_SECURE = False                             # 是否Https传输cookie
    					SESSION_COOKIE_HTTPONLY = True                            # 是否Session的cookie只支持http传输
    					SESSION_COOKIE_AGE = 1209600                              # Session的cookie失效日期(2周)
    					SESSION_EXPIRE_AT_BROWSER_CLOSE = False                   # 是否关闭浏览器使得Session过期
    					SESSION_SAVE_EVERY_REQUEST = False                        # 
    

      

    3.  SESSION_ENGINE = 'django.contrib.sessions.backends.file'    # 引擎
    				SESSION_FILE_PATH = None                                    # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir()                                                            # 如:/var/folders/d3/j9tj0gz93dg06bmwxmhh6_xm0000gn/T
    			 
    			 
    				SESSION_COOKIE_NAME = "sessionid"                          # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
    				SESSION_COOKIE_PATH = "/"                                  # Session的cookie保存的路径
    				SESSION_COOKIE_DOMAIN = None                                # Session的cookie保存的域名
    				SESSION_COOKIE_SECURE = False                               # 是否Https传输cookie
    				SESSION_COOKIE_HTTPONLY = True                              # 是否Session的cookie只支持http传输
    				SESSION_COOKIE_AGE = 1209600                                # Session的cookie失效日期(2周)
    				SESSION_EXPIRE_AT_BROWSER_CLOSE = False                     # 是否关闭浏览器使得Session过期
    				SESSION_SAVE_EVERY_REQUEST = False   
    

      

    4. 配置 settings.py
     
    				SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'     
    

     sttings.py

    # 在settiongs中指定auth模块的方式
    AUTH_USER_MODEL="app.userinfo"
    "app.userinfo":指向继承AbstractUser类的userinfo类
    

     models示例:

    class userinfo(AbstractUser):
        phone = models.CharField(max_length=11, null=None, blank=True)
        # 用户图片
        avatar = models.FileField(upload_to='avatar/', default='avatar/default.jpg')
        # 用户创建时间
        create_time = models.DateField(auto_now_add=True)
        # 关联站点
        blog = models.OneToOneField(to='Blog', null=True)
    

      

  • 相关阅读:
    转:VScode+Latex+SumatraPDF反向搜索失败解决办法
    Hierarchical Multilabel Classification (HMC)的定义
    Atomikos
    TCP四次挥手
    多种方式使用js填充[0, 1, 2, ...., 99]
    输入URL到页面渲染整个流程
    手写Promise
    奇安信——C++代码安全服务器开发一、二面
    元戎启行——C++后端研发岗一面——一面挂
    欢乐互娱——C++服务器开发一面——一面挂
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/11203029.html
Copyright © 2020-2023  润新知