精华内容
下载资源
问答
  • django源代码

    2016-09-21 08:34:55
    python写的前段web框架
  • govtrack.us-web, GovTrack.us 网站的Django 源代码 GovTrack网站前端这里 repo 包含 www.GovTrack.us 前端的源代码。 数据收集脚本在其他地方。本地开发利用Vagrant开发插件GovTrack.us 在 Ubuntu 16.04或者 OS X ...
  • django源代码有感

    2013-08-24 23:25:00
    这个是看django源代码有感。以前有写过一个看java源代码的方法。 另外还从杨成那学到了一个方法: 今天从杨成身上学到了:怎么去看java源代码,去深入的跟踪。按住crtrl键,从一个方法往另一个方法跟踪。 我...

    20134159:16:05

    科研立项——看dpress的源代码有感

    这个是看django源代码有感。以前有写过一个看java源代码的方法。

    另外还从杨成那学到了一个方法:

    今天从杨成身上学到了:怎么去看java源代码,去深入的跟踪。按住crtrl键,从一个方法往另一个方法跟踪。

     

    我整体的一个思路,有网、有一本书在手边。

    关键是梳理清楚他的脉络,所以之前你就要理解django的框架运行机制。

     

    按照脉络去梳理,

    从宏观到微观,梳理清楚脉络之后。才能深入细节去,将细节弄明白。一边做注释。

     

    还有梳理的过程中,你可能会发现,很繁杂,这个时候,就要抓主干,主要矛盾,有一些东西是不必须的,直接忽略,找到他的核心和重点。

     

    还有就是要找各种方法:如画图,使用rational rose等等。

    这次的template很复杂,因为出现了继承。Html之间的继承还是第一次接触,然后我画了一个继承图。如下:

     

    Dummy.html    Description.html

     

     

     

    Headerbase_style.htmlfooter.html   pages.html tags.html firendlinks. html Monthlinks.html  RSS Feed Firendlinks.htmlLastposts.html

     

     

     

    Base.html                   Sidebar.html

     

     

     

    ext_base.html

     

     

    Index.html    Post.html    Default.html

    这个图是我修改作者源代码的基础,为我修改作者的源代码提供了很好的参考,便于我梳理出里面错综复杂的关系。

     

    找到项目的入口。

     

     

     

    转载于:https://www.cnblogs.com/zhujianxipan/p/3280169.html

    展开全文
  • 基于类的通用视图 - 展平索引 通用显示视图 以下两个通用的基于类的视图旨在显示数据。在许多项目中,它们通常是最常用的视图。 一、DetailView django.views.generic.detail.... django.views.generic...

    基于类的通用视图 - 展平索引

    通用显示视图
    以下两个通用的基于类的视图旨在显示数据。在许多项目中,它们通常是最常用的视图。

    一、DetailView

           django.views.generic.detail.DetailView
    在执行此视图时,self.object将包含视图正在操作的对象。


    此视图从以下视图继承方法和属性:

    1. django.views.generic.detail.SingleObjectTemplateResponseMixin

    2. django.views.generic.base.TemplateResponseMixin

    3. django.views.generic.detail.BaseDetailView

    4. django.views.generic.detail.SingleObjectMixin

    5. django.views.generic.base.View

    示例myapp / views.py:

    class BlogDetailView(DetailView):
    
        model = Blog
        def get_context_data(self, **kwargs):
            context = super().get_context_data(**kwargs)
            context['date'] = timezone.now()
            blog =Blog.objects.all().first()
            context['title'] = blog.b_title
            context['content'] = blog.b_content
            return context

    示例myapp / urls.py:

    url('blogsdetail/(?P<pk>\d+)/', views.BlogDetailView.as_view(), name='blog-detail'),

    示例myapp / article_detail.html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1> 文章详情  </h1>
    
    <p>博客标题: {{ title }}</p>
    <p>博客内容: {{ content }}</p>
    <p>Date: {{ date }}</p>
    </body>
    </html>

    二、ListView

    django.views.generic.list.ListView
    表示对象列表的页面。

    在执行此视图时,self.object_list将包含视图正在操作的对象列表(通常但不一定是查询集)。


    此视图从以下视图继承方法和属性:

    1. django.views.generic.list.MultipleObjectTemplateResponseMixin

    2. django.views.generic.base.TemplateResponseMixin

    3. django.views.generic.list.BaseListView

    4. django.views.generic.list.MultipleObjectMixin

    5. django.views.generic.base.View

    示例views.py:

    class BlogListView(ListView):
        template_name = 'Blogs.html'
        model = Blog
    

    示例myapp / urls.py:

    url(r'^blogs/', views.BlogListView.as_view()),

    示例myapp / article_list.html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>博客列表</title>
    </head>
    <body>
    
    <h2>今日热门</h2>
    
    <ul>
        {% for blog in blog_list %}
            <li><a href="{% url 'app:blog-detail'  blog.id %}">{{ blog.b_title }}</a>{{ blog.b_content }}</li>
        {% endfor %}
    
    </ul>
    
    </body>
    </html>

     

    如果您正在使用分页,则可以从分页文档中调整示例模板。contacts将该示例模板中的实例更改 为page_obj。

    类django.views.generic.list.BaseListView
    用于显示对象列表的基本视图。它不是直接使用,而是作为django.views.generic.list.ListView表示对象列表的其他视图的父类 。

    此视图从以下视图继承方法和属性:

    django.views.generic.list.MultipleObjectMixin
    django.views.generic.base.View
    方法

    get(请求,* args,** kwargs)
    添加object_list到上下文。如果 allow_empty 为True则显示空列表。如果 allow_empty为False,则引发404错误

    展开全文
  • django源代码解析

    2021-05-13 10:47:46
    1、所有的Application统一是 django/core/handlers/wsgi.py WSGIHandler 2、WSGIHandler内部会将整个的处理分为几个阶段 1》load_middleware(初始化时进行一次) request_middleware self._

    一、wsgi: webserver与app之间的交互标准

        1、输入env,

        2、callback(status header),  

        3、返回数组形式的body

     

    def app(environ, start_response):

        start_response('200 OK', [('Content-Type', 'text/plain')])

        yield "Hello world!\n"

     

    二、主流程的处理

    1、所有的Application统一是 django/core/handlers/wsgi.py WSGIHandler

    2、WSGIHandler内部会将整个的处理分为几个阶段

    1》load_middleware(初始化时进行一次)

    request_middleware

    self._view_middleware = []

     

    # 后3个是从后往前

           self._template_response_middleware = []

           self._response_middleware = []

           self._exception_middleware = []

       2》触发回调 signals.request_started.send(sender=self.__class__, environ=environ)

        实际只有db部分会断开后再连接

    3》构造WSGIRequest

    4》get_response ----- 主流程

    1、依次回调process_request,有返回值就中断,否则执行下一个

    2、根据url找到view

    3、依次调用process_view

    4、具体回调, -----必须要返回response

    5、如果有render,则应用 process_template_response(使用模板前,可以修改模板相关逻辑)

    6、使用process_response    ---- 生成response后

    7、在这个过程中有异常时,触发process_exception

    简单说:process_request parseUrl process_view callback process_template_response render process_response

    3、db connection怎么保活? 直接不保活

    django.db.backends.base.base.py BaseDatabaseWrapper get_new_connection

    django.db.models.sql.compiler.py execute_sql 

     

    默认是每个request新开一个数据库connection,之后close(无状态)。如果要维护的话,注意设置connection的状态和数量限制

     

    三、典型app的目录结构

    manager.py -- 指定setting文件

    project

        settings

        urls

        wsgi

        tests

    app

        models

        views

        urls

        apps

        admin

    static

    template

     

    展开全文
  • 由来所有在用Django的同学都能体会到TA的强大,也能感受到TA的复杂。当能够通过Django完成简单或者复杂的业务功能之后,我们不可避免的想要了解TA更多。如何实现url router,如何实现的ORM,如何实现的debug模式的...

    在那些优雅、易用、丰富的API背后,总是隐藏着不为人知的密术,好奇的技术人员也总想一探究竟。

    由来

    所有在用Django的同学都能体会到TA的强大,也能感受到TA的复杂。当能够通过Django完成简单或者复杂的业务功能之后,我们不可避免的想要了解TA更多。如何实现url router,如何实现的ORM,如何实现的debug模式的autoreload。技术上最有趣的事儿莫过如此,好奇,你就有机会一探究竟。源码随时为你敞开。

    在工作的前几年,我们的小伙伴也产生过这样的好奇。问出这样的问题:“如何更好的阅读Django源码”。结果是被我们喷回去读Tornado源码。相对来说Django的代码中会充斥大量的业务代码,就技术氛围(鬼知道源代码里能不能读出技术氛围~~)而言,Tornado更好一些。But,如果你要长期使用Django还是阅读Django代码吧(这是后来我才想明白的事)。研究工具的意义毕竟是更好的解决问题。

    前几天在the5fire博客的也有读者(@杨学光)问了一样的问题:如何入手研究Django源码。所以你看,岁岁年年花相似,年年岁岁人不同。这篇文章就写写如何阅读Django源代码。

    在此之前,建议先阅读我之前的一篇文章《Python工程师进阶之道》,就像我里面所说的:

    好了,the5fire来总结下理论部分:从熟悉的地方中找到陌生的东西,然后搞懂,慢慢往外延伸,可能会比较吃力,但是哪有好走的捷径?

    不知道 @杨学光 同学是否理解了。

    如何阅读Django源代码

    先唠叨几句阅读源码的方式,其实不止Django源代码,the5fire个人总结阅源代码的姿势也就那么几个:

    • 业务需要,遇到坑了,文档没找到,只能读代码,比如之前the5fire因为一个小问题去翻了一遍nginx的源码。带着问题去看,会更认真,收获的会更多。就像《如何阅读一本书》里面提到的一样。
    • 用着用着就开始好奇Django的CONN_MAX_AGE是怎么实现的,已经熟悉了各种API接口,所以想一探究竟。
    • 纯学习,学了一段时间Python了,想去找个源码看看,看看自己能不能看懂,还有哪些知识盲点。或者另外一种更高的境界是去学习下优秀框架的设计思想,如何对数据进行封装,如何使用各种魔法函数。
    • 找工作,简历上只写我熟悉Django和Tornado,显然不如写我阅读了Django和Tornado的源码,收获很多,之类的话有吸引力。
    • more and more —— 欢迎补充。

    那么书归正传。如果你不熟悉Django,就妄想去读TA的源代码的话,那你学习到的只能是一些Python的技巧,比如闭包的使用,各种魔法方法的使用,线程的使用,弱引用的使用等等。对于理解Django是如何支撑起完美主义者的快速开发情结是没有帮助的。

    所以第一步是用TA,先熟悉一块领域,比如说url router,然后再顺藤摸瓜。以此类推,熟悉了Model,Queryset,知道Queryset是惰性的之后,再去看TA是怎么做到的。继续摸瓜。

    再此之后,去看看Django的文档,每个模块或者说每一层都已经划分的很清晰了,你需要自己把理解的东西对应到具体的那一层上去。比如说你看了Model的Queryset,然后可以对应到Model层;然后你看了Class Base Views部分的封装逻辑,然后你可以对应到View层,Class Base Views跟Model是怎么关联的,这样就可以连起来。以此类推。最终其实能够Get到的是,一个请求通过WSGI协议转到Django中来之后,每一层的处理逻辑是怎么样的。

    几个入手点

    下篇再写吧,没时间了,快上车~~~~~~~~~

    - from the5fire.com 

    文章转自:https://www.the5fire.com/


    展开全文
  • 使用Django开始一个项目,用得最多的大概应该是django-admin.py命令了。使用它可以创建一个项目、清理项目、进入交互环境等等。想了解一个Django,以及如何用Python做一个优秀的项目和框架,我也打算从这里开始。...
  •  Django对持久层的封装得很好,很好地支持Mysql、PostgreSQL、Oracle、SQLite3等流行的关系型数据库。顶层提供统一的模型封装,使用者基本无须关心真实数据库底层的细节,甚至对DBMS本身知之甚少也没关系。  ...
  • docker-django-1 Docker Django Project源代码
  • 这两天在看django的源代码,对包/模块的导入部分还不是很熟悉,这边结合Django源码代码,做一下理解和记录~ 目录: 1.模块属性:__name__ 2. 动态模块导入:__import__...Django源代码 python杂谈:__init__.p...
  • django by example 源代码

    2016-10-05 08:43:34
    django by example 书中的配套源代码
  • Django写blog源代码

    千次下载 热门讨论 2012-04-18 18:29:42
    Django写blog源代码,使用python django框架完成的个人博客
  • django天天生鲜项目源代码(毕业设计)

    万次阅读 热门讨论 2020-12-11 16:31:54
    django天天生鲜项目源代码: 链接:https://pan.baidu.com/s/1I8rDxxx9TlPu7kjb2oeK3A 提取码:va9v 复制这段内容后打开百度网盘手机App,操作更方便哦
  • Django博客系统源代码

    2021-03-18 13:01:18
    本博客的数据库与模型非Django自动生成,采用Python的web开发框架(Django)和Mysql数据库, 数据库的设计很不规范,由于时间方面的问题(基于才出道时的原有博客数据库结构) 图片上传采用Python的Image类库,分页采用的...
  • python3+Django微博源代码和开发环境,这个源码质量比较高,已经经过测试,对初学者帮助较大,希望能帮到各位。
  • DjangoPracticeProject:《跟老齐学Python:Django实战》对于初学者来说,也许官方文档太简要了,因此本书的作用就是将初学者领入Django开发的大门,并引导读者熟悉使用Django官方文档。本书从始至终贯穿着一个项目...
  • django-training-app django培训应用程序源代码
  • Django搜索教程 可在找到教程的源代码
  • Decode-DjangoDjango源代码分析。 Django原始代码剖析注释版本。我在这个项目当中,整理django代码的注释,如果看官认知可以一起阅读注释。 进度 箱子 conf 贡献 核心解码 分贝解码 派遣 形式 http 中间件...
  • Django-docker源代码。 对于运行项目 创建项目=> django-admin startproject应用 在项目中创建应用程序=> python manage.py startapp sample1 Project的settings.py文件中的更改- 在views.py中定义应用程序的视图...
  • Django Auth教程源代码 随附于的三部分系列。
  • Django Web 开发指南》作者网页上的源代码,仅有第2、7、8、9、10章和Appendix E部分的源代码
  • 验证码源代码 validcode_img.py: import random #导入随机模块 def get_random_color(): # 获取随机的颜色 RGB return (random.randint(0,255),random.randint(0,255),random.randint(0,255)) def get_...
  • django-final:django-final课程的源代码
  • djangoproject.com, djangoproject.com的源代码 djangoproject.com 源代码 要在本地运行,请执行以下操作:创建 python 3.5 virtualenv安装依赖项:pip install -r requirements/dev.txtnpm
  • 此存储库中有(django-social)课程的源代码
  • 的官方源代码。 可作为或。 如果您使用的是3.0版本,请参阅。
  • 的官方源代码。 可作为或。 如果您使用的是3.0版本,请参阅。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,733
精华内容 693
关键字:

django源代码