zoukankan      html  css  js  c++  java
  • Django—链接MySQL

    Djalgo基础配置方法

    静态文件配置方法

      1 所有的静态文件都放在 static 文件夹下,例如Bootstrap值类的第三方库,通常 static 文件下会创建 css image js 文件,用于存放与前端相关的数据文件。

           

      2 Django setting文件配置。

    # 静态文件配置
    STATIC_URL = '/static/' # 接口前缀,跟你的静态文件夹名字没有任何关系,默认情况下这个前缀和静态文件夹名字一样。


    STATICFILES_DIRS = [
        os.path.join(BASE_DIR,'static') # 这里的路径就是你静态文件夹的路径
       os.path.join(BASE_DIR,'static2') # 通常项目中会出现多个static文件夹,有些app也会有独立的static文件夹。
                            前端请求会依次查找列表中所有的静态文件路径,找到则立刻停止,没有则返回
                            404          

    ]

    在Pytham中链接MySQL数据库的方法

        1 创建数据库

               

       2 修改配置文件

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',  # 键必须是大写
            'NAME': 'day55',
            'HOST':'127.0.0.1',
            'PORT':3306,
            'USER':'root',
            'PASSWORD':'123'
        }
    }

       3 告诉Django 用pymysql替换它默认的mysqldb模块,链接数据库。

        两种方式:1 在项目文件夹下的__init__.py 或 直接在你应用文件夹下面的__init__.py

        # 固定写法

        inport pymysql

        pymysql.install_as_MySQLdb()

       4 Django 中的ORM

        什么是orm? 

        对象关系映射

           类                  》》》  表
                对象              》》》  表记录
                对象的属性   》》》 一条记录某个字段对应的值

        注意:在Django中不能自动创建库,但是可以自动创建表,一个Django项目使用一个库,不要多个Django项目共用一个库。

       5 数据库同步

        第一次链接数据库/或后期对现有表的字段做更改操作,都必须执行数据同步命令!

          同步命令:python3 manage.py makemigrations  将你的数据库变动记录到一个小本本上(并不会帮你创建表)
               python3 manage.py migration  将数据库变动正式同步到数据库中

            下方的session正式记录用户登陆状态的文件

       

    使用Django ORM操作数据库数据

      新增数据

          两种方式:    第一种方式

             1  user_obj=model.User.object.create(name=username,password=password)

              第二种方式

             2  user_obj=model.User(name=username,password=password)

              user_obj.save()          

      查询数据
     
        user_list = models.User.objects.all()  # 获取user表所有的数据
        # 只要是QuerySet就可以点query查看获取到当前QuerySet对象的内部sql语句
        print(user_list.query)

        查询数据的时候注意获取的对象是一个queryset对象还是以一个数据对象

        user_query=models.User.objects.filter(id=edit_id).first # 使用first取出的就是一个数据对象了。

        #  当filter当匹配的条件不存在的时候,返回一个空的queryset对象。

          <QuerySet []> <class 'django.db.models.query.QuerySet'>

        user_obj = models.User.objects.get(id=edit_id)  # 用get可以直接获取到数据对象本身但是查询条件不    存在的情况下直接报错

       删除数据
        models.User.objects.filter(id=1).delete()  # 会将queryset所有的数据对象全部删除 

     

    研究GET 与POST请求的差别

      GET是请求,如果请求类型是GET,说明用户只想获取某项资源,所以我们将用户需要的资源响应给他就好。

      POST是提交,如果是POST请求,说明用户需要向服务器提交数据,服务器就要准备接收用户提交的数据,此时POST模式和GET模式都可以传输用户的数据,但是区别在于,POST更安全,所以此时应该选择POST。在一些不需要考虑数据安全的情况下可以使用GET模式传输数据。例如获取用户ID时。

      requeset.method 可以拿到两种请求方式,可以使用 request.POST / request.GET 的方式分别获取到请求数据的结果,数据形式是一个字典,该字典是 QueryDict 类型,可以通过对象点方法取获取到相应的value,也可以使用get()方法取值。

    如果从前端提交的数据,在同一个key里包含多个值的情况(< QueryDict: {'username': ['jason',‘egon’], 'password': ['123']} >),需要使用getlist()方法才能取出全部的结果,如果是使用get()方法只能取到最后一个value。

       注意POST是提交数据,在HTML中只有 form表单中的 submit 和 botton 是有提交数据效果的。

     

    通过Django 生成图书管理系统表

    Web框架实现的最基础的流程图

  • 相关阅读:
    Sysinternals Suite
    扩展Visual Studio Test Project:自定义TestClassAttribute
    扩展Visual Studio Test Project:自定义TestClassAttribute
    SQL Server Single-user Mode
    MAXDOP(max degree of parallelism)
    关于log4net
    Go 切片的一种有趣内存泄漏方式
    Go 中的内联优化
    优化 Golang 服务来减少 40% 以上的 CPU
    Go 编译器内部知识:向 Go 添加新语句-第 2 部分
  • 原文地址:https://www.cnblogs.com/guanchao/p/10986883.html
Copyright © 2011-2022 走看看