• django 学习笔记2


    创建项目BookManager: django-admin startproject BookManager

    settings.py : 是项目的整体配置文件

    urls.py : 是项目的URL配置文件.

    manage.py : 是项目运行的入口, 指定配置文件路径

    创建应用Book: python manage.py startapp Book

    admin.py : 是后台的站点管理注册文件

    migrations : 是做模型迁移的


    新增的应用需要到setting.py中去注册

    运行服务:python manage.py runserver 172.16.21.25:8001

    模型属性值不允许使用连续的下划线,因为Django的查询语法就是连续的下划线

    编写完模型类之后,生成迁移文件:python manage.py makemigrations
    执行迁移文件生成表:python manage.py migrate

    创建外键:book_people = models.ForeignKey('BookInfo', on_delete=models.CASCADE)

     =========字段

    AutoField:自动增长的IntegerField,通常不用指定
    不指定时Django会自动创建属性名为id的自动增长属性
    BooleanField:布尔字段,值为True或False
    NullBooleanField:支持Null、 True、 False三种值
    CharField(max_length=字符长度):字符串
     参数max_length表示最大字符个数
    TextField:大文本字段,一般超过4000个字符时使用
    IntegerField:整数
    DecimalField(max_digits=None,decimal_places=None):可以指定精度的十进制浮点数
     参数max_digits表示总位数
     参数decimal_places表示小数位数
    FloatField:浮点数
    DateField[auto_now=False, auto_now_add=False]):日期
     参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false
     参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false
     参数auto_now_add和auto_now是相互排斥的,组合将会发生错误
    TimeField:时间,参数同DateField
    DateTimeField:日期时间,参数同DateField
    FileField:上传文件字段
    ImageField:继承于FileField,对上传的内容进行校验,确保是有效的图片

    ============

     在setting.py文件里包含着整个项目的总体配置。可以在里面设置本地化语言和时间。

     创建管理员账户: python manage.py createsuperuser

    管理后台地址:http://127.0.0.1:8000/admin 即可(记得后缀加admin

    若想在界面上管理模型,则需要在app的admin.py中注册模型:admin.site.register(BookInfo)

    Django后台管理是可以自定义管理页面 :

     在setting.py 中配置数据库:
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql', # 数据库引擎
    'NAME': 'Bookdb', # 数据库名称
    'HOST': 'localhost', # 数据库主机
    'PORT': '3306', # 数据库端口
    'USER': 'root', # 数据库用户名
    'PASSWORD': 'mysql', # 数据库密码
    }
    视图函数必须带一个参数request

     转换器是什么呢?简单来说就是能够路由提取的参数

    urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    path('articles/<int:year>/', views.year_archive),
    path('articles/<int:year>/<int:month>/',
    views.month_archive),
    path('articles/<int:year>/<int:month>/<slug:slug>/',
    views.article_detail),
    ]

    /articles/2003 不会匹配任何项,因为每一个匹配需要在最后加一个斜杠

     若想在管理员界面管理模型,则需要先注册模型,如

    from .models import JupyterResourceRecord #TODO
    admin.site.register(JupyterResourceRecord)

     视图集中的action与http请求的对应关系:

    启动工程
    django-admin startproject myproject
    创建应用
    django-admin startapp boards
    在settings.py的INSTALLED_APPS中注册应用
    连数据库:python manage.py dbshell

     ============

    • vlaues -
      • 单条记录 - <class 'dict'>
      • 多条记录 - <class 'django.db.models.query.QuerySet'>
    • vlaues_list -
      • 单条记录 - <class 'tuple'>
      • 多条记录 - <class 'django.db.models.query.QuerySet'>
    ipList = EmployeeIP.objects.values("IP").first()
    print(type(ipList))
    # <class 'dict'>
    print(ipList)
    # {'IP': '192.168.1.41'}
    ipList = EmployeeIP.objects.values_list("IP")[0:2]
    print(type(ipList))
    # <class 'django.db.models.query.QuerySet'>
    print(ipList)
    # [('192.168.1.41',), ('192.168.1.44',)]

     获取指定字段:ret = EvaluationAppl.objects.filter(team_id=1301).values("submit_id","submit_id","score")

     解决 django 中 mysql gone away 的问题:from django.db import close_old_connections

    参考链接:https://zhaojames0707.github.io/post/django_mysql_gone_away/

    action=“.”用于显示当前表单的提交地址,这里表示的是当前地址,即调用此模板的视图函数所对应的 URL 。

    {% csrf_token %}在表单中是必不可少的,不写在这个位置也行,只要在<form>语句里面即可

    但对于 MIDDLEW:成E 读者或许没有关注,现在就看看它,其中有一个参数 django.middleware.csrf.CsrfViewMiddleware,有了这个中间件,就能保证
    叫django 免受csrf攻击了。如果前端通过 POST 方式提交数据,就会被禁止,而 POST 数据又是必不可少的,解决方法之一就是在表单中使用{% csrf_token %},与表单内容一同被提交

    在 INSTALLED_APPS 的列表中发现 django.contrib.auth 应用就是 Django 默认(内置)的用户权限管理应用

    django。contrib.auth应用创建的表以auth作为前缀,其中auth_user里是用户表

    可以用is_anonymous()来区分登录用户和未登录用户,

    在模版中可以通过 request.user 得到用户对象 , user.is_authenticated 则是返回用户登录的状态,已
    经登录返回 True,否则返回 False



  • 相关阅读:
    maven配置
    redis测试
    智慧社区技术总结
    视频导航
    Delphi 任务栏中不显示窗口
    Delphi 设置程序图标为系统默认图标
    清除Windows系统图标缓存
    C/C++ 变量的本质分析
    005 C/C++ 数据类型_void
    004 C/C++ 数据类型_类型别名
  • 原文地址:https://www.cnblogs.com/testzcy/p/13095416.html
Copyright © 2020-2023  润新知