• django 学习笔记


    参考:https://mp.weixin.qq.com/mp/homepage?__biz=MjM5MzgyODQxMQ==&hid=13&sn=554298cacaa3fab234ce8c5bd24f49d8&scene=25#wechat_redirect

    应用程序模型的当前状态 : python manage.py makemigrations

    将我们生成的迁移文件应用到数据库: python manage.py migrate

    跳转到manage.py文件所在的目录并执行以下命令:django-admin startapp boards

    • migrations/:在这个文件夹里,Django会存储一些文件以跟踪你在models.py文件中创建的变更,用来保持数据库和models.py的同步。

    • admin.py:这个文件为一个django内置的应用程序Django Admin的配置文件。

    • apps.py:这是应用程序本身的配置文件。

    • models.py:这里是我们定义Web应用程序数据实例的地方。models会由Django自动转换为数据库表。

    • tests.py:这个文件用来写当前应用程序的单元测试。

    • views.py:这是我们处理Web应用程序请求(request)/响应(resopnse)周期的文件。

    可以使用manage.py 工具加载我们的项目来启动 Python shell :python manage.py shell
    项目将被添加到sys.path并加载Django。这意味着我们可以在项目中导入我们的模型和其他资源并使用它。

    将其余的字段当做Python属性访问


    board = Board(name='Django', description='This is a board about Django.')
    board.save()

    创建一个新的Board对象:
    board = Board.objects.create(name='Python', description='General discussion about Python.')

    列出数据库中所有现有的版块:
    boards_list = Board.objects.all()
    for board in boards_list:
    print(board.description)

    查询数据库并返回单个对象: 若返回多条结果或没有结果,则get会抛异常
    django_board = Board.objects.get(id=1) # Board.objects.get(name='Django')
    django_board.name

     urlpatterns 中的顺序很重要,因为 Django 一旦找到匹配就会停止往后搜索。如果 Django 在 URLconf 中没有找到匹配项,他会通过 Page Not Found 的错误处理代码抛出一个 404 异常

     正则表达式 (?P<pk>d+),这是告诉 Django 将捕获到的值放入名为 pk 的关键字参数中

    def board_topics(request, pk): 使用了 (?P<pk>d+) 正则表达式,在 board_topics函数中,关键字参数必须命名为 pk

    如果你想在视图函数使用任意名字的参数,那么可以这样定义:url(r'^boards/(d+)/$', views.board_topics, name='board_topics')

    def board_topics(request, board_id) 或 def board_topics(request, id)

    ==========

    技巧部分是正则表达式。我准备了一个最常用的 URL patterns 的列表。当你需要一个特定的 URL 时你可以参考这个列表。

    主键 自增字段 
    正则表达式 (?P<pk>d+)
    举例 url(r'^questions/(?P<pk>d+)/$', views.question, name='question')
    有效 URL /questions/934/
    捕获数据 {'pk': '934'}

    Slug 字段 
    正则表达式 (?P<slug>[-w]+)
    举例 url(r'^posts/(?P<slug>[-w]+)/$', views.post, name='post')
    有效 URL /posts/hello-world/
    捕获数据 {'slug': 'hello-world'}

    有主键的 Slug 字段 
    正则表达式 (?P<slug>[-w]+)-(?P<pk>d+)
    举例 url(r'^blog/(?P<slug>[-w]+)-(?P<pk>d+)/$', views.blog_post, name='blog_post')
    有效 URL /blog/hello-world-159/
    捕获数据 {'slug': 'hello-world', 'pk': '159'}

    Django 用户名 
    正则表达式 (?P<username>[w.@+-]+)
    举例 url(r'^profile/(?P<username>[w.@+-]+)/$', views.user_profile, name='user_profile')
    有效 URL /profile/vitorfs/
    捕获数据 {'username': 'vitorfs'}

    Year 
    正则表达式 (?P<year>[0-9]{4})
    举例 url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive, name='year')
    有效 URL /articles/2016/
    捕获数据 {'year': '2016'}

    Year / Month 
    正则表达式 (?P<year>[0-9]{4})/(?P<month>[0-9]{2})
    举例 url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive, name='month')
    有效 URL /articles/2016/01/
    捕获数据 {'year': '2016', 'month': '01'}

    你可以在这篇文章中看到更多关于正则表达式匹配的细节:https://simpleisbetterthancomplex.com/references/2016/10/10/url-patterns.html

     =======ORM操作数据库:https://www.bilibili.com/read/cv4136105/

    士大夫

  • 相关阅读:
    list中的对象或者map中的版本号排序 version排序
    spring boot jpa 复杂查询 动态查询 连接and和or 模糊查询 分页查询
    java 8 list的stream操作 list中的对象中的某一个成员取出转为该成员的list,以及对象过滤,筛选某个属性后的成员
    map或者对象转换
    Feign代理必须加value否则启动失败
    Eclipse中.setting目录下文件介绍
    远程仓库版本回退方法
    SpringMVC异常处理机制
    android studio启动和项目编译问题
    CentOS6.5安装php7+nginx+mysql实现安装WordPress
  • 原文地址:https://www.cnblogs.com/testzcy/p/13079870.html
Copyright © 2020-2023  润新知