• Django的方法


    ---恢复内容开始---

    静态文件的配置:

    静态文件:对已经写好过了的文件,我们只是拿过来用,那么这个文件就可以被称为静态文件。

    静态文件可以是:
      bootstrap一类的框架的的文件

      image图片文件夹

      css样式文件

      js文件夹

    在django中所有的静态文件都存放在static文件夹下

      一般存放的子文件夹

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

    如果是编辑就重新渲染一个页面,如果是删除直接操作就好。

  • 相关阅读:
    vue项目中npm安装sass,less,stylus
    jQueryniceScroll滚动条错位问题
    基于github发布 个人网站/博客
    【转载】预处器的对比——Sass、LESS和Stylus
    元素,布局方式,BFC和清除浮动
    使用git向github中添加项目并更新(备忘录)
    nginx 之 grok 过滤
    gitlab 同步小脚本
    svn同步小脚本
    使用pip命令自动生成项目安装依赖清单
  • 原文地址:https://www.cnblogs.com/xinfan1/p/11529277.html
Copyright © 2020-2023  润新知