Django的方法

---恢复内容开始---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中设定什么资源,用户就能够访问到相应的资源。

 

FORM表单默认的提交方式是get请求

携带数据的方式是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.写后缀

视图函数通常是先处理get请求的

request这个参数是wsgi这个模块帮咱们处理的,跟wsgiref模块里面的env很类似,都是请求相关的数据

获取请求的方法就是

request.method

GET:

  request.GET获取前端get请求的数据(相似一个大字典)

  request.GET.get('name')  这个默认是获取最后的值

  request.GET.getlist('hobby')  这个是获取所有

POST:

  request.POST是获取前端post请求携带的数据(相似于一个大字典)

  request.POST.get('name')这个默认是获取最后的值

  request.POST.getlist('hobby')  这个是获取所有

 

 

parcharm操做数据库

就是database那个按钮,使用的时候别忘了装插件先

 

django操做mysql

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()

django的orm

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语句

增:
  1.models.User.objects.create(username=username,password=password)

  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值,

若是是编辑就从新渲染一个页面,若是是删除直接操做就好。

相关文章
相关标签/搜索