2、静态文件配置

一、静态文件

我们将html文件默认都放在templates文件夹下,
将网站所使用的静态文件默认都放在static文件夹
静态文件就是前端写好的,能够直接使用的文件,如网站写好的js文件,css文件,图片文件以及第三方前端框架

Django默认是不会自动帮你创建static文件夹,需要你自己手动创建,一般情况下我们在static文件夹内还会做进一步的划分处理,如下

-static
    --js
    --css
    --img
    --以及其他第三方文件 
# 我们把网站用到的图片、CSS、JS文件 分类处理,这样清晰明了,解耦合

二、静态文件配置

首先我们在templates文件夹创建一个HTML文件,编写一个登陆功能

<form action="">
    <p>用户名:<input type="text" name="username" class="form-control"></p>
    <p>密码:<input type="text" name="password" class="form-control"></p>
    <input type="submit" value="登录" class="btn-success">
</form>

然后在views.py和urls.py开放这个资源接口

def login(request):
    return render(request, 'login.html')
#################################################
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/', views.login),
]

启动项目,在url后缀输入/login/进入我们编写的登录页面,如下图,可以看出界面没有任何样式

我们现在有一个CSS文件可以为我编写的HTML文件添加样式,该怎么办呢?

我们需要找到settings文件,拉到最下面会看到

STATIC_URL = '/static/'

我们在它下面写上静态文件配置

STATIC_URL = '/static/'
# 静态文件配置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static'),
]

"""
这个代码可以开放static文件下的路径,给前端访问
"""

然后我们回到login.html文件在head标签内将css文件引入

<head>
<link rel="stylesheet" href="/static/css/bootstrap.min.css">
</head>

再去看看界面是不是好看了一点

三、动态解析文件

假如有一天,突然有个需求,就是 settings文件的STATIC_URL要改名,改成STATIC_URL = '/yyy/'或者STATIC_URL = '/zzz/',反正就不是原来的名字了,这下子出事了!接口的前缀名变了,HTML文件找不到了,可这咋整啊!

有两种办法,
1、手动改每个地方的路径,万一有几百个需要改的,累死你
2、用模板语法的方式动态地解析静态文件,

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

{% load static %}是啥意思,就是获取STATIC_URL后面的路径,无论你改成什么它都知道

现阶段小tips:

我现在使用django提交post请求的使用,经常会报错,此时对于处于刚学习django阶段的我们还没有解决这个问题的能力,只需要记住找到配置文件里的中间件,把其中一行注释掉就行了

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',
]

这样就能暂时解决报错问题,在后面对django地深入学习后会回头来解决这个问题的  

四、PyCharm链接数据库

以mysql演示,在右上方或者左下方找到database按钮,第一次使用需要按download下载插件,下载完以后点test connection,输入你的mysql账号密码然后再登录就能进去了,使用时先测试连接,确认没有问题再应用

五、Django连接数据库

因为Django默认使用的是sqlite3,我们要改成mysql,第一步先找到settings文件中的DATABASE,然后改成

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '数据库的名称',
        'USER': 'root(用户名)',
        'PASSWORD': '你的密码',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'CHARSET': 'utf8'
    }
}

这样弄完虽然完成了,但是还不够,我们一运行就会发现问题了,他会报错说:No module named 'pymysql',由于django默认用的是mysqldb模块链接MySQL,但是该模块的兼容性不好,需要手动改为用pymysql链接,我们要在项目名下或者任意应用名下的_init_.py中写下以下代码

import pymysql
pymysql.install_as_MySQLdb()

django 2.0.7版本之后,pymysql源码不兼容,建议使用mysqlclient,什么都不用配置,可以直接用,不需要在init里写上面的代码,卸载掉pymysql安装mysqlclient就可以了

posted @ 2021-05-23 16:45  黑影Poco  阅读(221)  评论(0)    收藏  举报