程序员Django

Django的配置(二)

2019-02-25  本文已影响16人  测试游记

在完成了Django的Hello World之后,下面开始进行一些基础的配置。

配置模版文件

打开主项目下的settings.py文件
首先找到TEMPLATES,该列表存放的是一些静态文件相关的内容。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        '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',
            ],
                'builtins': ['django.templatetags.static'], #增加的一行
        },
    },
]

其中当APP_DIRSTrue的时候,Django会去找templates文件夹下面的子app文件
其中新增了一行builtins: A list of dotted Python paths of template tag modules to add to built-ins.
它的作用是:Tags and filters from built-in libraries can be used without first calling the {% load %} tag.

具体每个参数的学习可以查阅:https://docs.djangoproject.com/zh-hans/2.1/topics/templates/

配置mysql数据库

因为本地装了一个mysql数据库,所以就捡现成的好了。


数据库配置

如图所示

使用数据库可视化工具就可以进行数据库连接的测试了
使用的账号是zhongxin密码是123456

连接测试
可以看到连接成功了
连接结果

下面是在Django中进行配置:
找到默认的数据库连接配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

这个是使用的自带的sqlite3,我不会用,所以删了它,将它改为我们的mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 数据库引擎
        'NAME': 'Zxapitest', # 数据库名称
        'USER': 'zhongxin',  # 数据库登录用户名
        'PASSWORD': '123456', # 密码
        'HOST': '127.0.0.1',  # 数据库主机IP,如保持默认,则为127.0.0.1
        'PORT': 3306, # 数据库端口号,如保持默认,则为3306
    }
}

当然这个操作非常的危险,如果真实项目肯定要耍点手段把它隐藏起来,毕竟数据库密码暴露在外面,谁知道哪天被脱库。
接下来在需要导入pymysql


导入pymysql

时区配置

把时区相关的内容改为中国地区~

# 修改语言
LANGUAGE_CODE = 'zh-hans'
# 修改时区
TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True
# utc 时间
USE_TZ = True

修改静态文件配置

在项目根目录中创建一个static目录,用于存放静态文件(css、js、image、font等)

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),   # 用于存放静态文件
]

创建应用

由于我现在只有一个模糊的目标,所以具体需要多少个应用还没想过,但是不管怎么样,登录功能总是需要的。我们就先创建一个登录好了。
找到Tools下的Run manage.py Task...

创建应用
输入startapp login进行应用的创建
startapp login
可以看到文件结构里面多了一个login的文件夹

因为以后不出意外肯定有很多应用要创建,所以创建一个文件夹apps,再把login这个文件夹进去

移动文件夹
下面进入settings.py文件,在上面(BASE_DIR这个变量的后面)添加如下几行:
import sys

# 创建应用之后,把apps目录加入到sys.path中
sys.path.insert(0, BASE_DIR)
sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))

分别在apps文件夹和项目根目录文件夹上右击,加入到Sources Root根中,优化导入路径。

优化导入路径
最后找到INSTALLED_APPS列表,在最后加入login
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'login'
]

寻找免费前端代码

由于前端技术太渣,所以直接百度找人家写好的代码好了。

前端广告
这个看上去就不错,那就拿了。
地址:https://themequarry.com/theme/my-login-bootstrap-4-login-page-snippet-ASFEDAB1
前端代码结构
下载之后是这一堆东西。我们把他们拉到项目里面去,注意一定要拉进去,这样Pycharm会帮我们该掉里面的一些相对路径。
对应

先修改index.html文件
在文件的第一行加上:{% load static %}
找到bootstrap,css,img,js相关的代码进行修改
加上{% static ' ' %}
例如:

<link rel="stylesheet" type="text/css" href={% static 'bootstrap/css/bootstrap.min.css' %}>

下面开始测试
打开apps/login/views.py
写入:

def index(requests):
    return render(requests,'login/index.html')

这样访问的时候就会渲染index.html页面

app/login下新建urls.py文件
写入:

from django.urls import path
from . import views

app_name = 'login'

urlpatterns = [
    path('',views.index)
]

这样访问ip:端口就会调用index函数

最后找到主路径下的urls:Zxapitest/urls.py
写入:path('',include('login.urls'))

from django.contrib import admin
from django.urls import path, include
from login import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('login.urls'))
]

运行测试:


测试

这样一个花架子就搭建好了,具体实现下一篇再写了。

上一篇 下一篇

猜你喜欢

热点阅读