利用pycharm+Ubuntu制作django项目(3)

配置settings(本次格式为MVT)

DEBUG为运行出错时,是否报错,这个当项目上线时,需要将它改为false

在settings里面第65行回车然后输入以下代码

‘builtins’: [‘django.templatetags.static’],# 注这个一定要敲对,不然当你后期网页渲染的时候,他就会报错。我找了1h才知道这个错误,下面是我写的错误代码截图

在这里插入图片描述

常用的配置的数据库:

a.创建一个数据库,

1.进入mysql

2.create database first_por charset utf8;

3.use first_por

b.创建用户

create user summer identified by ‘summer’;

c.赋予权限

grant all on 数据库名.* to ‘用户名’@’%’;

d.更新权限

FLUSH PRIVILEGES;

当这些弄完以后,回到settings里面设置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'HOST':'127.0.0.1',
        'POST':'3306',
        'NAME':'数据库名',
        'USER':'用户名',
        'PASSWORD':'密码',
    }
}

ok 再去运行起来,看看有没有小火箭。

考虑到安全情况下配置的数据库

a.新建一个python包,utils(名字随便)

在里面创建一个dbs的文件夹,再在里面创建一个名为dbs.cnf的文件

在里面写入:

[client]

database = 数据库名

user = 用户名

password = 密码

host = 127.0.0.1

post = 3306
default-character-set = utf8

写完之后将原来的在settings里面的信息注释或者删除,再将ENGINE换成mysql引擎:

'ENGINE': 'django.db.backends.mysql'

设置完成之后,在注释的下方写入以下数据:

'OPTIONS':{
'read_default_file':'utils/dbs/dbs.cnf'
}

配置完redis我就需要将redis也配置进去

在# Password validation前面开始配置就行

# 配置redis 用处:保存重写数据,校验码,django的反存机制,静态页面
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
}

将上面这行代码输进去之后,你就需要安装一个依赖包,进入虚拟机输入:

pip install django-redis

接下来配置日志器

# 配置日志器,记录网站的日志信息
LOGGING = {
    # 版本
    'version': 1,
    # 是否禁用已存在的日志器
    'disable_existing_loggers': False, #不禁止已存在的日志器
    'formatters': { #定义日志输出格式
        'verbose': { # 指定复杂格式
            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
        },
        'simple': { # 简单的格式
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },
    },
    'filters': { # 过滤器 
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': { # 处理器
        'console': { # 终端
            'level': 'DEBUG', # DEBUG级别以上都可以加入
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': { # 文件
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, "logs/july.log"),  # 日志文件的位置 
            'maxBytes': 300 * 1024 * 1024,
            'backupCount': 10,  # 保留文件个数
            'formatter': 'verbose'
        },
    },
    'loggers': {  
        'django': {  # 定义了一个名为django的日志器
            'handlers': ['console', 'file'],# 表示可以往终端和文件写入
            'propagate': True,
            'level': 'INFO',  # 日志器接收的最低日志级别
        },
    }
}

以上你需要在根目录下创建一个名为log的文件夹,在里面创建一个july.log的文件(名字自己取哟,但必须和上面对应)—‘filename’: os.path.join(BASE_DIR, “logs/july.log”),

当上面的都完成创建了之后,在根目录下创建一个static的文件夹,用来存储之后写的css,html,js文件。并将它指定为根目录,(右击选择MARK DIR AS,选择蓝色的dir就可以)

创建完成之后再settimngs的最后一行写入以下代码:

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

ok 让我们运行看一下把:

什么!报错??

Did you install mysqlclient?

这个报错是因为我们没有下载一个django与mysql连接的接口,回到虚拟机下载吧

pip instqll pymysql

然后在你创建的项目文件夹下的__init__.py里面写入以下代码:

import pymysql
pymysql.install_as_MySQLdb()

创建app

在根目录下创建一个名为apps的文件夹,并把它指定为根目录

1.然后回到虚拟机,先cd到项目文件,在cd到apps

…/manage.py startapp user(新建一个app名字为user)

…/manage.py startapp news

2.需要将虚拟机里的app同步到物理机

3.在settings里面注册app

INSERT_APP下面写

'apps.news',
'apps.user',

也可以更高级,

import sys

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# my projects
sys.path.insert(1,os.path.join(BASE_DIR, 'apps'))

然后在刚才的地方输入'user'和'news'就好了

接下来就是配置url了

先在每个app里面创建一个urls.py的文件

from django.urls import path
urlpatterns = [
	
]

然后打开项目文件的url在urlpatterns里写入

from django.urls import path,include


path('user/',include('user.urls'),
path('news/',include('news.urls')))

ok 路由创建完成之后,我们就开始创建视图啦

先用uesr这个app的视图玩一下

---user/views.py

from django.http import HttpResponse

def demo(request):
	res = '感谢大家的观看'
	return HttpResponse(res)

然后在user的urls里配置url

---user/urls
from user import views


path('',views.demo)

当这些完成以后,让我们来看一下是否成功把!


127.0.0.1:8000/user/

urlpatterns = [
	
]

然后打开项目文件的url在urlpatterns里写入

from django.urls import path,include


path('user/',include('user.urls'),
path('news/',include('news.urls')))

ok 路由创建完成之后,我们就开始创建视图啦

先用uesr这个app的视图玩一下

---user/views.py

from django.http import HttpResponse

def demo(request):
	res = '感谢大家的观看'
	return HttpResponse(res)

然后在user的urls里配置url

---user/urls
from user import views


path('',views.demo)

当这些完成以后,让我们来看一下是否成功把!

127.0.0.1:8000/user/

# 感谢各位看官能看到这里,感谢各位的支持,这几个版本的基本以文字为主,这边已经将图文的笔记上传到公共号(dreamspy)回复django-git即可领取,欢迎各位看官前去观看。 —胖子叩首

发布了43 篇原创文章 · 获赞 11 · 访问量 5426

猜你喜欢

转载自blog.csdn.net/jiangSummer/article/details/103099719