Django项目开始的基本配置
首先我们先了解的知识 - 用户能够访问的所有资源,都是程序员提前暴露好的
如果没有暴露,用户就永远访问不了
django是可以自动重启的,但是有时候反应速度比较慢,也有可能在你代码没写完的时候重启了,会报错,但是不用管
三板斧
导入模块
from django.shortcuts import render,HttpResponse,redirect
render
- 返回html页面
HttpResponse
- 返回html页面
redirect
- 重定向
静态文件配置
静态文件-第一步
网站所要用到的
- 自己写好的js
- 自己写好的css
- 第三方框架bootstrap,font-awesome,sweetalert
通常情况下,网站所用到的静态文件,统一的都放在static文件夹下
1. setting.py
STATIC__URL = '/static/' # 是访问静态资源的接口前缀
"""
只要你想访问静态资源,你就必须以static的接口前缀
"""
# 手动配置静态文件访问资源
STATICFILES_DIRS = [
os.path.join(BASC_DIR,'static')
]
1. 写在html中导入js,css的动态解析语句
静态文件, 动态加载
{% load static %} -- 翻译: 装入静态文件
<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}"
<script scr="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
form表单-第二步
action:
- 不写 默认朝当前地址提交
- 只写后缀/index/
- 写全路径
method:
- 表单默认的提交方式是get请求
- get请求方式携带的参数是在url后面
- 缺点:1. 不安全 2. get请求携带的参数有大小限制
- post请求是相对安全的的
学习前期使用post请求如果要提交post请求,有两种方法:
-
直接去settings.py文件中注释掉一个中间件
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',]
-
在html文件中,
服务端request对象及方法处理浏览器提交的数据-第三步
-
获取post请求携带的数据 - request.POST.get- (默认只取最后一个元素)
-
获取post请求携带的参数列表 - request.POST.getlist- (返回的是一个列表套对象)
-
获取get请求携带的参数 - request.GET.get - (默认只取最后一个元素)
-
获取get请求携带的参数列表 - request.GET.getlist - (返回的是一个列表套对象)
get和post在后端获取用户数据的时候,规律是一样的
django连接数据库 - 第四步
-
第一步: 配置文件中配置
1. settings.py DATABASES = { 'default':{ 'ENGINE': 'django.db.backends.mysql', # 指定数据库为mysql 'NAME': 'db_name', # 指定到底是哪一个数据库 'USER': 'root', 'PASSWORD':'123', 'HOST':'128.0.0.1', 'PORT':3306, 'CHARSET':'utf8' # 这里不可以写utf-8,会报错 } }
-
第二步:
django默认使用的是mysqldb连接数据库,但是该模块不支持了,所以你要告诉django不要用musqldb,应该用pymysql 你可以在项目名下面的__init__.py也可以在应用名下面的__init__.py文件下面指定 import pymysql pymysql.install_as_MySQLdb()
django orm简介
orm对象关系映射
类 - 数据库中的表
对象 - 表的记录
对象获取属性 - 记录的某个字段对应的值
优点: 能够让一个不会操作数据库的人,也能简单快捷的去使用数据库
缺点: 由于封装程度太高,可能会导致程序执行效率偏低,有时候,集合项目需求,可能也会需要手写sql语句
注意事项:
1. django的orm不会自动帮我们创建库, 库需要我们自己手动创建
2. 表会自动的帮忙创建,只需要书写符合django orm语法的代码即可
那么我们会去app所在的models.py文件夹下去书写符合django orm语法的代码
models.py中的orm书写格式
1. models.py
from django.db import models
class User(models.Model):
# 设置id为主键 - AutoField:主键专用
id = models.AutoField(primary_key=True)
# 设置username字段为64位的字符型
username = models.CharField(max_length=64)
# 设置phone为数值型
phone = models.IntegerField()
数据库迁移命令
- 方式一:cmd命令
python.manage.py makemigrations # 并不会创建表,只是把当前的操作记录下来(miggrations)
python.manage.py migrate # 将orm语句真正迁移到数据库中,也就是创建表
- 方式二:
Tools -> Run manage.py Task... (快捷键:ctrl+alt+R)
-> 在下方弹出来的控制台中输入 -> makemigrations -> migrate
注意: 只要在models.py中修改了跟数据库相关的代码,就必须再执行上面的两条命令