配置文件
注册应用
直接在后面添加
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
获取请求数据
获取请求结果的数据
-
request.POST
结果为<QueryDict: {'username': ['jason'], 'password': ['123']}>
可以当作字典来取值
取值例如:request.POST.get('username')
结果为:['jason']
-
request.GET
结果为<QueryDict: {'username': ['jason'], 'password': ['123']}>
取值:request.GET.get('username')
结果为:['jason']
pycharm连接数据库
pycharm它也支持连接数据,Navicat连接数据库,大多数都是使用Navicat
-
点击Pycharm右侧 __database__或左下角两个正方型叠图形然后选则database
-
点加号 ,再点 Data Source ,再点 MySQL
-
输入表面大致如下
接下来就连接好了
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数据的时候可能报错的解决办法
-
如果解释器版本导致的问题,直接改源码
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
-
解释器版本改为3.6的时候也会报错
Django的底层默认使用的是mysqldb模块,这个模块兼容性很差我们还使用pymysql连接mysql,你要提前安装pymysql模块
报错信息:
Did you install mysqlclient or MySQL-python?
在项目的任意的__init__.py中加入下面两行代码import pymysql pymysql.install_as_MySQLdb() # 猴子补丁 # 这两行代码的意思就是把底层的mysqldb模块换成pymysql
-
除了使用mysqldb、pymysql之外还可以使用mysqlclient这个模块
用了mysqlclient这个模块,就不用加上面那两句话了