Django—连接MySQL

 

Djalgo基础配置方法

 

 

静态文件配置方法css

  1 全部的静态文件都放在 static 文件夹下,例如Bootstrap值类的第三方库,一般 static 文件下会建立 css image js 文件,用于存放与前端相关的数据文件。前端

       

  2 Django setting文件配置。python

 

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


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

]

 

 

在Pytham中连接MySQL数据库的方法mysql

    1 建立数据库sql

           

   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模块,连接数据库。django

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

    # 固定写法服务器

    inport pymysqlsession

    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框架实现的最基础的流程图

相关文章
相关标签/搜索