Skip to content

Commit

Permalink
DjangoCon US 2023
Browse files Browse the repository at this point in the history
  • Loading branch information
jonafato committed Jul 17, 2024
1 parent 429badf commit 3e18c88
Show file tree
Hide file tree
Showing 54 changed files with 1,176 additions and 0 deletions.
3 changes: 3 additions & 0 deletions djangocon-us-2023/category.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"title": "DjangoCon US 2023"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "I'm Felipe de Morais, Co-CEO and co-founder of AfroPython. In this talk, I will share the path of AfroPython in Brazil(http://afropython.org/) and how the Python community was involved in growing and building this community of black people in IT. And how we became a company to help people thrive using Python.",
"language": "eng",
"recorded": "2023-10-16",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Felipe de Morais"
],
"thumbnail_url": "https://i.ytimg.com/vi/FNDCGyTA5fE/maxresdefault.jpg",
"title": "AfroPython: Using Django to change black people life in Brazil",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/FNDCGyTA5fE"
}
]
}
22 changes: 22 additions & 0 deletions djangocon-us-2023/videos/all-about-djangoproject-com.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "The djangoproject.com website is the showcase of the Django project and developers and users have always looked for updates on the project, documentation, and information from the Django Software Foundation.\n\nAs with its source code, the Django project site is also the result of contributions from many people who voluntarily help to keep it updated and improve it.\n\nIn this talk, we will see all the latest updates, ongoing improvements, and upcoming developments of the Django project site.\n\nParticipants will be able to learn more about the Django project site, learn more about how it is maintained and above all understand how to help improve it.",
"language": "eng",
"recorded": "2023-10-17",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Paolo Melchiorre"
],
"thumbnail_url": "https://i.ytimg.com/vi/2wwiFe1PKfU/maxresdefault.jpg",
"title": "All about djangoproject.com",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/2wwiFe1PKfU"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "Over the last few years, I have run into the same multitenancy use case across different projects. This scenario is a \u201clightweight\u201d multitenancy use case, where we have a tenant model and tenants are instances of this model; all tenants share the same database, schema, and application instance. Resources belong to a single tenant, but users can belong to multiple tenants. Almost all API routes need to be nested under the tenant id, with urls of the form `api/tenants/tenant-id/some-resource`. The challenges we faced were how to effectively nest our API urls and how to consistently restrict access to resources, so that users could only access those resources that belong to tenants that the user has permission to access.\n\nWe\u2019ll cover:\n- A brief description of the use case and multitenancy\n- How we implemented nested routes in our API using [drf-nested-routers](https://github.com/alanjds/drf-nested-routers)\n- How we wrote a custom viewset to centralize all logic related to checking that the user has permission to access resources under a specific tenant\n- Custom model manager to avoid accidentally leaking information from other tenants\n- Uses and limitations of our approach\n- A different approach using an existing library ([drf-access-policy](https://github.com/rsinger86/drf-access-policy))\n\nAnyone with experience in Django is welcome!",
"language": "eng",
"recorded": "2023-10-17",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Eliana Rosselli"
],
"thumbnail_url": "https://i.ytimg.com/vi/BW9ju19u1zU/maxresdefault.jpg",
"title": "An approach to lightweight tenancy management using Django Rest Framework",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/BW9ju19u1zU"
}
]
}
22 changes: 22 additions & 0 deletions djangocon-us-2023/videos/automate-your-city-data-with-python.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "It is very hard for the average resident of a U.S. or Canadian city to know what\u2019s going on with their civic government. It\u2019s even harder for them to get any sort of historical context on why things are the way they are. Let\u2019s take my hometown, the City of Alameda. Six months ago if you wanted to know which city meetings had discussed rent control, your options were:\n\n- Have a friend who is a constant watcher of Alameda meetings\u200a/\u200athe #alamtg hashtag and could tell you\n- Go through every meeting minutes on the Alameda Legistar and hope you figured it out\n\nThis is pretty common across a lot of civic government. I don\u2019t think municipalities are willfully trying to hide this information from residents, and I don\u2019t think it\u2019s ineptitude. I think most cities, even the large ones, are understaffed, and without a concerted push it\u2019s hard to make \u201cvisibility of city documents\u201d a priority.\n\nWhat if we could have SQL-backed full text search of city meeting minutes? Well, thanks to Datasette, Python, AWS, and some Github actions, we can!\n\nHere's the process:\n\n1. Figure out where official city minutes are hosted\n2. Write a script to fetch and format those city minutes\n3. Upload all the fetched minutes to AWS S3\n4. Run s3-ocr across the corpus of minutes\n5. Download the ocr\u2019d pages into a sqlite DB\n6. Deploy a datasette instance to fly.io with that sqlite DB.\n7. Post to twitter so people know about it.\n\nIn this talk, I will cover this whole process in detail, including how to automate it, so that you can apply this process to your city, county, state, school board, or any other civic government you're interested in!",
"language": "eng",
"recorded": "2023-10-16",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Philip James"
],
"thumbnail_url": "https://i.ytimg.com/vi/fHsMZ3cuMhU/maxresdefault.jpg",
"title": "Automate Your City Data with Python",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/fHsMZ3cuMhU"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "\"Hypermedia is your friend\", they said. \"You don't need JavaScript\", they said. \"You'll be _fine_...\"\n\nIt's no secret that hypermedia has been making a quiet resurgence in the web development landscape. One of the most popular toolkits in the Python space is htmx, offering a simple, declarative approach to AJAX and Server Sent Events directly from your HTML.\n\nWhile this trend is taking shape in the Python ecosystem as a whole, Django goes even further, providing a maturing set of patterns, tooling, and projects that take full advantage of these new (old?) paradigms.\n\nWhat are some of the ways that Django is leading the charge in making hypertext cool again? What are some examples of projects already utilizing these tools? Is this a viable approach to _serious_ web design? And what are some of the ways that we could improve the adoption of hypermedia within Django, and Python as a whole?",
"language": "eng",
"recorded": "2023-10-18",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Mario Munoz"
],
"thumbnail_url": "https://i.ytimg.com/vi/LwH4ifjt3Y4/maxresdefault.jpg",
"title": "Back to the Future of Hypermedia in Django",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/LwH4ifjt3Y4"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "It's easy to get caught up in testing metrics. We all do it. We aim for 100% code coverage, try to hit all branches, write good integration tests, and all the other good developer practices. These all indicate that we are building our product right, but are we building the right product?\n\nThere's a different mentality when it comes to answering this question. We, as developers, can't just make sure that the code does what *we* want it to do. We need to think about what our users want. We need good requirements and specifications and we need to make sure that we are covering user acceptance testing.\n\nIn this talk, we're going to discuss why requirements are hard to get right, and how we can solve some of those problems. We'll introduce strong traceabilty with executable specifications and then talk about how to tie that directly to your Python tests.\n\nWe'll discuss behavior driven development, primarily with the `behave` library. After we cover the basics, we'll look at a Django application and talk about the challenges in performing user acceptance testing on websites. We'll use the `selenium` library to drive website interactions through Python, and tie it all together with acceptance tests.\n\nThis talk assumes basic knowledge of testing practices, Python, and HTML/JavaScript.",
"language": "eng",
"recorded": "2023-10-17",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Pat Viafore"
],
"thumbnail_url": "https://i.ytimg.com/vi/3VcprC3G7aQ/maxresdefault.jpg",
"title": "BDD To The Bone: Acceptance Testing with Behave and Selenium",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/3VcprC3G7aQ"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "Over the past few years, the Wagtail CMS core team and accessibility subteam have made a [significant commitment to improving Wagtail's accessibility](https://wagtail.org/accessibility/) \u2013\u00a0of the CMS interface itself as well as the websites that it produces. This talk is focused on the latter, showing how you (a developer of a Wagtail-powered site) can set up your models, templates, and workflows in order to make it as easy as possible for your editors to create websites that are as accessible _as possible_. I say \"as possible\" because it's important to recognize that it's _not_ possible for a website to ever be considered 100% accessible, but by putting some care into what we do on the development side, we can prevent some of the most widespread accessibility issues that users may come across.\n\nTopics that will be covered include:\n- How to use Wagtail's [new built-in accessibility checker](https://wagtail.org/blog/introducing-wagtails-new-accessibility-checker/)\n- Custom validation to ensure that a page has a logical heading order\n- Ensuring alt text is used appropriately (Spoiler alert: every image doesn't need alt text!)\n- Usage of `aria-label` attributes to provide essential context to screen readers\n- Providing timely, contextual help to editors as they create their content",
"language": "eng",
"recorded": "2023-10-18",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Scott Cranfill"
],
"thumbnail_url": "https://i.ytimg.com/vi/qqQBbVIHkCA/maxresdefault.jpg",
"title": "Best Practices for Making a Wagtail Site as Accessible as Possible",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/qqQBbVIHkCA"
}
]
}
22 changes: 22 additions & 0 deletions djangocon-us-2023/videos/beyond-the-basics-of-migrations.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "This talk will go into the basic anatomy of an auto-generated migration, as well as ways to leverage migrations for more complex functionality, such as data transformation. The goal is to demystify migrations for beginners and to empower intermediate users to do more with migrations.\n\nProvisional Outline:\n- Introduction to basic migration anatomy (~5 minutes)\n- In brief, what migrations are doing under the covers when run (1-2 minutes)\n- Editing auto-generated migrations, and what functionality is available (~5 minutes)\n- Creating a migration from scratch, with an example or two (5-8 minutes)\n- A few best practices to keep in mind (~2 minutes)\n- Remaining time for Q&A",
"language": "eng",
"recorded": "2023-10-16",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Charlotte Mays"
],
"thumbnail_url": "https://i.ytimg.com/vi/mnr_fJhbMzc/maxresdefault.jpg",
"title": "Beyond the Basics of Migrations",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/mnr_fJhbMzc"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "In this talk, we will explore the world of GraphQL APIs with Strawberry, a new Python library that makes it easy to create GraphQL APIs with Django. We will dive into what GraphQL is, how it compares to traditional RESTful APIs, and what makes Strawberry stand out from other Python GraphQL libraries.\n\nOne of the biggest challenges in GraphQL API development is the N+1 problem, where queries can become exponentially slow as more data is requested. We will discuss how data loaders can help solve this problem, and go in-depth on how to use them in Strawberry. In this topic we will also cover how the Strawberry Django integration leverages query introspection and user defined hints to automatically call .only(\u2026)/.select_related(\u2026)/.prefetch_related(\u2026) on querysets, making your queries more efficient and avoiding common pitfalls. This is especially important in high-traffic, production environments where performance is critical.\n\nFinally, we will showcase some of the benefits of using Strawberry and Django together, including a type-safe approach to API development and streamlined code maintenance. By the end of this talk, you'll have the knowledge and tools you need to create high-performance GraphQL APIs with Strawberry and Django.\n\nIt will be presented in the following order:\n\n- Intro\n- Quick overview of what a GraphQL API looks like and its advantages\n- Writing general GraphQL APIs using Strawberry\n- Integrating the Django ORM with Strawberry\n- Some common pitfalls, with emphasis on the N+1 problem\n- GraphQL tools to avoid those pitfalls and how to use them with Strawberry\n- How the Strawberry Django integration uses introspection to automatically overcome those pitfalls and also improve performance when executing Django querysets",
"language": "eng",
"recorded": "2023-10-17",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Thiago Bellini Ribeiro"
],
"thumbnail_url": "https://i.ytimg.com/vi/TP8MC2W3eIw/maxresdefault.jpg",
"title": "Building high-performance, type-safe GraphQL APIs with Strawberry and Django",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/TP8MC2W3eIw"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "In this session, attendees will be introduced to the world of APIs and learn how Django, one of the most popular web frameworks, can be used to build them. We will explore the capabilities of Django Rest Framework (DRF), a powerful and flexible platform for building RESTful APIs.\n\nIn addition, we will discuss the benefits of using OpenAPI for API development, and learn how to leverage it to create robust and scalable APIs. We will cover best practices for API design, including request handling, response formatting, authentication, and versioning.\n\nThroughout the session, we will focus on building RESTful APIs with Django and DRF, using practical examples to illustrate key concepts. Attendees will leave with a solid understanding of how to design and document APIs using OpenAPI, ensuring that their documentation is always up-to-date and accurate.\n\nWhether you are new to API development or looking to improve your existing skills, this session is for you. Join us and learn how to build powerful and effective APIs using Django, DRF, and OpenAPI.",
"language": "eng",
"recorded": "2023-10-16",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Velda Kiara"
],
"thumbnail_url": "https://i.ytimg.com/vi/qcxio8C9Mh0/maxresdefault.jpg",
"title": "Building Powerful APIs with Django, Django Rest Framework, and OpenAPI",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/qcxio8C9Mh0"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"description": "We'll start with my experience at DjangoCon US 2022 and the work I did while at the sprints on an ORM related bug. Then we'll walk through the process I went through as I realized that the bug I thought could be closed was actually still a bug and needed to be fixed. I'll talk about the process I used to work on the bug and the great support I got from the community (both in person at Django Con US and online afterward).\n\nBy the end of this talk you'll realize that while the Django ORM can seem big and scary, and you may be hesitant to try and tackle a bug or other issue related to it, at the end of the day, it's *just* Python.\n\nKey take aways:\n\n- using public notes as a way to track your learning and progress on (any) issue\n- getting comfortable with the idea of becoming the world's foremost expert on an issue\n- getting stuck is OK because the Django community is amazing and supportive and wants to see you succeed in fixing this bug",
"language": "eng",
"recorded": "2023-10-16",
"related_urls": [
{
"label": "Conference Website",
"url": "https://2023.djangocon.us"
}
],
"speakers": [
"Ryan Cheley"
],
"thumbnail_url": "https://i.ytimg.com/vi/VPldDxuJDsg/maxresdefault.jpg",
"title": "Contributing to Django or how I learned to stop worrying and just try to fix an ORM Bug",
"videos": [
{
"type": "youtube",
"url": "https://youtu.be/VPldDxuJDsg"
}
]
}
Loading

0 comments on commit 3e18c88

Please sign in to comment.