Django之配置文件、静态文件、request方法、连接MySQL

配置文件

注册应用

直接在后面添加

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',
]


中间键

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

根路由的文件名

ROOT_URLCONF = 'day54_dj.urls'

Django连接MySQL数据库的

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

语言时间

LANGUAGE_CODE = 'zh-hans' 
TIME_ZONE = 'Asia/Shanghai'
LANGUAGE_CODE = 'zh-hans' 
TIME_ZONE = 'Asia/Shanghai'

静态文件的配置

静态文件:
网站使用的CSS文件
网站使用的js文件
网站使用图片
网站使用的第三方库文件
jQuery、bootstrap等
action参数的三种情况:

<form action="">
	action参数的三种情况:
    	1. 什么都不写,就是朝当前地址提交数据
        2. 要么全写:http://127.0.0.1:8000/login/?username=&password=
        3. 只写后缀
        	http://127.0.0.1:8000/login/

我们知道静态模板文件都是放在templates文件夹中,如果没有这个文件夹就自己创建

我们一般把静态文件放在static文件夹中, 但是,需要我们自己手动创建出来这个文件夹

之前访问网上开源的地址都可以访问到,那是因为你在后端开设了可以访问的接口(理由)

访问不到http://127.0.0.1:8000/static/css1.css,是因为你在后端没有开设这样的一个可访问的接口(路由)

Django自动的帮我们写好了这样的接口

访问静态文件的令牌,以后你只要访问静态文件的路径,就要以/static/开头

然后在配置文件中设置

STATIC_URL = '/vxcvxcvxcvxcvcx/'  # 静态文件

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

动态解析路径

在模板文件(html)中写

{% load static %}

<script src="{% static 'js/jquery.min.js' %}"></script>
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>

request对象请求方法

request方法在视图文件中的函数使用

查看请求方式

request.method 输出结果是大写的 GET POST

获取请求数据

获取请求结果的数据

  1. request.POST
    结果为<QueryDict: {'username': ['jason'], 'password': ['123']}>可以当作字典来取值
    取值例如:request.POST.get('username')
    结果为:['jason']

  2. request.GET
    结果为<QueryDict: {'username': ['jason'], 'password': ['123']}>
    取值:request.GET.get('username')
    结果为:['jason']

pycharm连接数据库

pycharm它也支持连接数据,Navicat连接数据库,大多数都是使用Navicat

  1. 点击Pycharm右侧 __database__或左下角两个正方型叠图形然后选则database

  2. 点加号 ,再点 Data Source ,再点 MySQL

  3. 输入表面大致如下
    在这里插入图片描述
    接下来就连接好了

Django连接MySQL

当用Django连接MySQL时,需要去 配置文件DATABASES 中修改

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

    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db1',		# 表
        'HOST': '127.0.0.1',
        'PORT': 3306,		# 端口
        'USER': 'root',		# 用户
        'PASSWORD': '123',  # 密码
        'CHARSET': 'utf8'
    }
}

连接MySQL数据的时候可能报错的解决办法

  1. 如果解释器版本导致的问题,直接改源码

    def get_new_connection(self, conn_params):
        conn = Database.connect(**conn_params)
        conn.encoders[SafeText] = conn.encoders[six.text_type]
        
    	# 先判断bytes是否存在于编码器中,如果在才执行操作
        if bytes in conn.encoders: # 加上这句话
            conn.encoders[SafeBytes] = conn.encoders[bytes]
        return conn
    
  2. 解释器版本改为3.6的时候也会报错
    Django的底层默认使用的是mysqldb模块,这个模块兼容性很差

    我们还使用pymysql连接mysql,你要提前安装pymysql模块

    报错信息:Did you install mysqlclient or MySQL-python?
    在项目的任意的__init__.py中加入下面两行代码

    import pymysql
    pymysql.install_as_MySQLdb()  # 猴子补丁
    # 这两行代码的意思就是把底层的mysqldb模块换成pymysql
    
  3. 除了使用mysqldb、pymysql之外还可以使用mysqlclient这个模块
    用了mysqlclient这个模块,就不用加上面那两句话了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值