---恢复内容开始---css
静态文件:对已经写好过了的文件,咱们只是拿过来用,那么这个文件就能够被称为静态文件。前端
静态文件能够是:
bootstrap一类的框架的的文件python
image图片文件夹mysql
css样式文件sql
js文件夹数据库
在django中全部的静态文件都存放在static文件夹下django
通常存放的子文件夹bootstrap
css文件夹 当前网站的css样式文件后端
js文件夹 当前网站的js文件前端框架
image文件夹 图片文件夹
其 他(前端框架代码 第三方插件代码...
你的静态文件若是要想在django中有效的话,那么必须在settings中配置一下
配置:
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'),
]
这样你只要输入相应的静态文件的路径就能够有效的使用。
STATIC_URL = '/static/' 这个不是什么文件夹的名字,而是接口前缀
只要你想要访问静态文件,那么就必需要前面都必须是/static打头,这个不是你的静态文件夹的名字,而是接口前缀。后面才是要找寻的路径。
由于里面能够存放多个路径,这个访问不到访问下一条,都没有会报请求资源不存在。
{% load static %} 这个是初步导入接口前缀
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>
一个端口号就启动一个django项目,省得出bug
用户能够访问到的资源放在url中,也就是说url中设定什么资源,用户就能够访问到相应的资源。
携带数据的方式是url后面问号跟数据
http://127.0.0.1:8000/login/?username=zekai&password=123
另外请求改为post后要去settings里面去注释掉一个中间件
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', ]
form表单提交数据的目的地是由action控制的
1.不填,默认是当前文件所在路径
2.填全路径
3.写后缀
request这个参数是wsgi这个模块帮咱们处理的,跟wsgiref模块里面的env很类似,都是请求相关的数据
获取请求的方法就是
request.method
request.GET获取前端get请求的数据(相似一个大字典)
request.GET.get('name') 这个默认是获取最后的值
request.GET.getlist('hobby') 这个是获取所有
request.POST是获取前端post请求携带的数据(相似于一个大字典)
request.POST.get('name')这个默认是获取最后的值
request.POST.getlist('hobby') 这个是获取所有
就是database那个按钮,使用的时候别忘了装插件先
django默认使用的是自带的splite3数据库,小型数据库。
若是想要使用其余的数据库就要在settings配置文件中从新配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'day51', 'HOST':'127.0.0.1', 'PORT':3306, 'USER':'root', 'PASSWORD':'123', }
配置完后还要在项目文件夹或者应用名文件夹下的__init__文件中替换已经不兼容的mysql_db这个
默认链接mysql的。
import pymysql pymysql.install_as_MySQLdb()
ORM:对象关系映射
类---------表
对象-----------表中记录
对象的属性---------记录上字段对应的值
首先要在models.py这个文件上写模型表类
class User(models.Model): # 将id字段设置为User表主键字段 在django orm中 你能够不写主键字典 django会默认给你的表建立一个名为id的主键字段 # id = models.AutoField(primary_key=True) # 一旦你本身指定了主键字段 那么django就不会自动再帮你建立了 username = models.CharField(max_length=32) # username varchar(32) CharField必需要指定max_length参数 password = models.IntegerField() # password int
python manage.py makemigrations 这个只是将操做记录下来,但并无同步到数据库中
python manage.py migrate 这个是真正同步到数据库中
一旦表中字段发生改变就要执行这条指令,一条用于记录操做,一条用于真正同步
就是在类中加字段,但要记住,若是表已经建好了,那么再新增字段有2种方式
1.给新增的字段设置默认值
addr = models.CharField(max_length=32,default='China')
2.让新增的字段能够为空
null=True
就是注释那个字段,而后执行 python manage.py makemigrations 和python manage.py migrate这2条指令
先导入models
models.User.objects 这3个参数不管增删改查都是固定的
models.User.objects.all() 这个是查全部=select * from User;
model.User.objects.get(name=name) 这个是获取对象自己,若是不存在则会报错
res = models.User.objects.filter(username=username) 这个获取的是列表套对象,能够经过索引0拿对象,但不建议,建议用first()拿对象,由于里面已经封装好了。
查询出来的queryset对象都有一个query方法能够获取原生的sql语句
2.user_obj = models.User(username=username,password=password)
user_obj.save()
删:
models.User.objects.filter(条件).delete()
1.models.User.objects.filter(条件).update()
2.user_obj.name=username
user_obj.save()
用户的增删改查
1.经过orm展现全部到前端
all()
模板语法for循环
2.添加新增按钮
a标签的href直接触发后端逻辑
create()
编辑和删除按钮
利用get请求携带的数据,在url后面跟问号加对应数据的id值,
若是是编辑就从新渲染一个页面,若是是删除直接操做就好。