博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

静态文件配置

1.静态文件
写好之后不会自动动态改变的文件资源,比如写好的css文件、js文件、图片文件、第三方框架文件
   默认将所有的静态文件都放在一个static文件夹内
   在django目录下创建该文件夹
  static
      css
           js
           img
           第三方文件资源
   # 在加载静态资源的没有开设对应的访问接口
2.配置
settings.py配置文件
   # 静态文件配置
   STATICFILES_DIRS = [
       os.path.join(BASE_DIR,'static')
  ]
   <script src="/static/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
3.进阶操作
STATIC_URL = '/static/'  # 接口前缀
   '''
  如果想要访问静态文件资源,那么必须以static开头
  书写了接口前缀之后 就拥有了以下列表中所有文件夹内部资源的权限
  '''
   # 静态文件配置
   STATICFILES_DIRS = [
       os.path.join(BASE_DIR,'static'),
       os.path.join(BASE_DIR,'static1'),
       os.path.join(BASE_DIR,'static2'),
  ]
4.动态解析
{% load static %}
   <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对象方法

1.form表单
form表单默认使用的是get请求
  action
       控制后端提交的路径
      1.不写:默认朝当前页面地址提交数据
           2.后缀:/index/
           3.全写:https://www.baidu.com
       method
      get
           post
2.request对象方法
request.method
  获取当前请求的请求方法并且结果是一个纯大写的字符串类型
   request.POST  # 直接看成是字典即可
  获取用户提交post请求过来的基本数据(不包含文件)
       get()  # 获取列表最后一个元素
       getlist()  # 获取整个列表
   request.GET  # 直接看成是字典即可
  获取url问号后面的数据
       get()  # 获取列表最后一个元素
       getlist()  # 获取整个列表
   request.FILES  # 直接看成是字典即可
  获取用户上传的文件数据
       '''
      form表单如果需要携带文件数据 那么要添加参数
      <form action="" method="post" enctype="multipart/form-data">
      '''
       get()  # 获取列表最后一个元素
       getlist()  # 获取整个列表
   '''
  视图函数书写格式
  def login(request):
  if request.method=='POST':
  return HttpResponse("我很气愤")
  return render(request,'login.html')
  '''

pycharm连接数据库

DataBase工具栏
下载对应的驱动即可

django连接MySQL

'''django默认使用自带的sqlite3'''
1.配置文件修改配置
DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.mysql',
           'NAME': 'db06',  # 一定要事先创建好才能指定
           'HOST': '127.0.0.1',
           'PORT': 3306,
           'USER': 'root',
           'PASSWORD': '123',
           'CHARSET': 'utf8',
      }
  }
2.在项目文件夹或者应用文件夹内的__init__.py文件中书写固定的代码
import pymysql
   pymysql.install_as_MySQLdb()

django orm简介

'''
orm:对象关系映射
'''
>>>
对象 >>> 表里面的数据
对象点属性 >>> 字段对应的值
# 缺陷:sql封装死了 有时候查询速度很慢

orm实操

1.模型类需要写在应用下的models.py文件中
class User(models.Model):
       # id int primary key auto_increment
       id=models.AutoField(primary_key=True)
       # name varchar(32)
       name=models.CharField(max_length=32)  # CharField必须要加max_length参数
       # age int
       age=models.IntegerField()
******************************************************
2.数据库迁移命令
1.数据库修改操作记录到对应应用下的migrations文件夹
  python manage.py makemigrations
       简写:makemigrations
   2.真正的执行数据库迁移操作
  python manage.py migrate
       简写:migrate
   # 只要动了models.py中跟数据库相关的代码就必须重新执行上述两条命令
******************************************************
3.针对主键字段
class User1(models.Model):
       # 如果不指定组件 那么orm会自动帮你创建一个名为id的主键字段
       # 如果想让主键字段不叫id 需要自己手动指定
       username=models.CharField(max_length=32)

字段的增删改查

# 增
pwd=models.IntegerField('密码',null=True)  # 描述,该字段可以为空
is_delete=models.IntegerField(default=0)  # 默认值
# 改
直接改代码然后执行数据库迁移命令即可
# 删
注释掉代码然后执行数据库迁移命令即可

数据的增删改查

# 1.查询数据
# select * from user where name=username;
user_obj=models.User.objects.filter(name=username).first()
# 2.添加数据
# insert into user(name,pwd) values(username,password);
models.User.objects.create(name=username,pwd=password)
# 3.查询所有的数据
# select * from user;
models.User.objects.all()  # [obj1,obj2,obj3]
# 4.修改数据
# update user set name=username and pwd=password where id=edit_id;
models.User.objects.filter(id=edit_id).update(name=username,pwd=password)
edit_obj.name=username
edit_obj.pwd=password
edit_obj.save()
# 5.删除数据
# delete from user where id=delete_id
models.User.objects.filter(id=delete_id).delete()