PyCharm Professional's backend support for major Python web frameworks, plus the bundled frontend support from WebStorm and SQL support from DataGrip, provide the best full-stack IDE for Python.
Modern web applications have grown complex with sophisticated JavaScript frameworks and tools. PyCharm Professional bundles WebStorm, giving best-in-class client-side development.
Links to subsections below: HTML, CSS, JavaScript, TypeScript, Angular, React, Vue.js
PyCharm Professional makes development with your SQL backend productive by bundling DataGrip, our IDE for databases.
Links to subsections below: Databases, Querying, Navigation, Table Editor, Code Completion, Import/Export
Modern Python web development is a breeze with PyCharm Professional, which adds direct support for popular web frameworks. This support brings features that make a huge impact on project productivity.
PyCharm, of course, lends its general IDE features to backend development as well: intelligent code editor, smart code navigation, refactorings, debugging, IDE customization, visual versioning, and more.
Django is the award-winning leader of Python web frameworks and PyCharm has long supported it. Running, debugging, navigating, working productively... PyCharm has you covered for Django.
The Django run/debug configuration type makes it easy to configure and start the Django server in a productive tool window, whether local or remote.
Syntax and error highlighting, code completion, navigation between views and templates, and debug templates visually by inserting a breakpoint right in the editor.
Easily jump from a symbol in a template to Python code for models, view methods, forms, route parameters, settings, and more.
Save time with such editor actions as automatic code formatting and indentation, code snippets/live templates, automatic matching of symbols like braces, code commenting, "Surround with tag," and autocompletion with type inference.
Special coding assistance within standard files: urls.py and settings.py: files, folders, view methods, regex injection and highlighting. Utilize intentions to let PyCharm create views and templates from usage.
Work faster with models and forms by using autocompletion in views and templates, type inference, navigation, refactoring, and find usage.
More for Django: autocomplete static resource names in templates (and get warnings), special interactive task window for manage.py with project-driven autocomplete, Jinja2 and Mako templates in Django, code intentions such as convert function view to/from class-based view, template inspections to warn for mistakes, i18n helpers, live templates for Django, model diagrams, and more.
The fast-growing Flask microframework has strong and growing PyCharm support: templates, navigation, completion, and more.
Mark a directory as a template folder, syntax support, code inspections, reformatting, and more.
Set a breakpoint in a template, including inside a loop, and remove the mystery about what is going wrong in your rendering.
Autocomplete in Python or Jinja2 based on render parameters, route parameters, and Flask globals such as sessions.
Easily jump between view and template files, or from symbols in a template to the Python code for that symbol.
Autocomplete old-style Flask extension code which used the flask.ext namespace.
Infer types of fields on declarative models, support generated model constructors, and mark query strings as SQL using language injection.
More for Flask: Live templates for quickly generating Flask routes and a dedicated project type which generates a simple pre-configured Flask project.
Pyramid is popular for large, configurable web projects and PyCharm has long provided good Pyramid support.
Custom Run/Debug configuration type for Pyramid makes it easy to point Pyramid’s server at a configuration file.
Support all 3 Pyramid templates languages with syntax highlighting, autocomplete, reformatting, and code completing, plus template debugging in Jinja2.
Jump from views to templates, and navigate to symbols from within templates.
More for Pyramid: Detect and configure Pyramid projects when opening, SQLAlchemy and SQL support, and a dedicated project type which mirrors Pyramid project creation options.
Modern development workflows use remote or virtual technologies, either to centralize development or provide isolation. PyCharm provides rich support for full-stack development using Vagrant, SSH, and Docker.
Run and debug local code in remote/container environments. Supports Docker, Vagrant, SSH, and Windows Subsystem for Linux. PyCharm UI for browsing local Docker containers.
Configure your project with a Deployment scenario based on SFTP or FTP. Automatic/manual upload, manage credentials, map local folders to remote, and more.
Log into the remote system using an IDE-based terminal similar to the local terminal, based on the project’s remote configuration. Define remote tasks that run over SSH from within PyCharm.
Full-stack Python is a big topic and PyCharm has much more to offer:
PyCharm Professional bundles WebStorm, which brings smart coding assistance for JavaScript and TypeScript, built-in debugger for client-side code (that works with Chrome) and Node.js, HTML and CSS. Enjoy code completion, powerful navigation features, on-the-fly error detection, and refactorings for all of these languages, with cutting-edge support for modern frameworks and test runners.
Working with HTML in large projects needs professional tooling and PyCharm has many features for working with HTML.
Let your IDE accurately complete your project’s class names and IDs whether in HTML or CSS.
Say goodbye to manually indenting your markup and let your IDE do it for you, with numerous configuration options.
PyCharm spots mistakes with configurable code inspections and quick fixes, such as missing references or invalid HTML.
More for HTML: Syntax highlighting, preview in browser, view embedded images, productive markup type with Emmet abbreviations, drag-and-drop CSS/JS references into the HTML document.
Web styling is an old and mature technology, but recent advances bring useful new capabilities. PyCharm makes CSS development productive while supporting the latest-and-greatest.
Code completion and navigation for CSS symbols as well as class names and IDs used in the project, with support for imports.
Let the IDE worry about indentation, blank lines, and spacing through configurable code formatting. Use Stylelint with your CSS style settings, with code inspections and quick fixes.
Syntax, autocomplete, autoimport, and warning support for, Sass, SCSS, Less, and more.
Modern JavaScript is a rich environment for large-scale browser-side and server-side applications. PyCharm has first-class support for the ever-changing world of JavaScript development
Full debugger which works both for NodeJS (local or remote) and execution in Chrome.
Move/rename, move to class, extract parameters, variables, and method, plus much more refactoring.
Speedups for many common operations in JavaScript, such as: convert to single quote, flip operand, and convert to string template literal.
More for JavaScript: Autogenerate ES6 import when completing a symbol, configurable “optimize imports” to let the IDE clean up imports, intelligent and configurable code reformatting, ESLint not only for warnings but for quick fixes, file watchers to run Babel on source changes.
Frameworks, libraries and large JavaScript projects are adopting TypeScript to produce better code and PyCharm has mature, modern support for TypeScript.
Syntax highlighting with error checking, code completion and assistance, code formatting, quick navigation, usage search, and automatic imports.
Extensive refactoring assistance: rename/move, change signature, extract parameter, extract interface, and more.
Use TSlint and project configuration to drive code inspections and quick fixes.
More for TypeScript: Built-in compiler to compile TypeScript as you type, project-wide UI for reporting compilation errors, inline viewing of parameter hints and inferred type information, TypeScript language service support.
Sophisticated JavaScript applications means testing and test frameworks, and PyCharm gives mature and productive support for Karma, Jest, Protractor, and Mocha.
Perform testing with ease, as PyCharm integrates with test runners such as Karma, Mocha, Jest and Protractor. Easily set framework-specific configuration options.
Launch tests from the IDE, running in a powerful tool window with many options for focusing on your testing.
Run just one test with a right-click, autorun tests as you type, navigate easily from failing test or code to the relevant line, see useful gutter icons.
More for Testing: Launch your test under the debugger for investigation, integrated UI for viewing and navigating test coverage (including gutter decorations), UI support for Jest snapshots, restart tests quickly through integration with test runner’s watch support.
Angular is a top frontend framework and PyCharm, with its bundled WebStorm, provides top-quality integration, with both the latest releases and the older AngularJS and powerful debugging during running and testing.
Code completion, navigation, reformatting, code insight, and quick fixes for Angular components and templates, from cutting edge to classic AngularJS.
Use Angular’s tool not only to generate new projects, but also components and other artifacts, all from a PyCharm UI.
Let PyCharm generate your import as it autocompletes a usage, optimize and reformat your imports based on settings.
More for Angular: Integration with Angular language service, live templates for quickly adding Angular/AngularJS snippets, coding assistance for Angular Material design (completion on components and attributes plus code navigation)
React is taking the web development world by storm and PyCharm has mature, professional support for the library. PyCharm also brings its powerful, productive debugger to React development and testing.
Quick and accurate code completion for React APIs: methods, attributes, events, and your custom components (with autogenerated imports on completion.)
Jump from a symbol JSX/TSX to the view method, property, or other defining symbol, then do the reverse with Find Usages.
Get warnings and quick fixes on usage and style with configurable settings driven by a linter such as ESLint.
More for React: Generate new projects using create-react-app (with UI support for react-scripts), refactor components across the project, React Native support, use Emmet shortcuts in JSX, support for TypeScript and Flow.
Vue.js is a newer, lightweight web framework with ever-improving support in PyCharm, with debugger support during editing and also when running tests.
Recognize .vue files, with support for the script/style/template blocks, and “lang” support for using TypeScript/Pug/CSS as the relevant language.
Code completion, analysis, and navigation to components, properties, and methods in Vue templates.
Automatically generate imports when completing a symbol in code or templates.
More for Vue.js: Live templates for quickly generating Vue.js snippets, project template for new Vue.js projects.
SQL databases are a popular backend for full-stack Python web applications and PyCharm makes database development productive by bundling DataGrip, our IDE for SQL. Productive querying, schema browsing, table editing, refactoring, import/export, and more.
Our general IDE features also apply to database development: intelligent code editor, smart code navigation in SQL, table refactorings, IDE customization, visual versioning of your schema scripts, and more.
PyCharm introspects all objects in your databases and displays them grouped in folders by schemas. It also provides a UI for adding and editing tables, columns, indexes, constraints etc.
Run queries in a dedicated console with browseable output, local history, and a useful diff viewer to compare different results.
Quick navigation brings you to any object, no matter if it has just been created in your code or has already been read from a database. Navigate to symbol lets you find objects by their name.
Powerful table editor lets you add, remove, edit, and clone data rows. Navigate through the data by foreign keys and use the text search to find anything in the data displayed in the table editor.
PyCharm provides context-sensitive, schema-aware code completion, helping you write code faster. Completion is aware of the table structure, foreign keys, and even database objects created in code you're editing.
Move data into and out of your database in rich ways, using familiar formats such as CSV/JSON/XML, other datasources such as SQLite, exports of recent queries, or even programming-driven Data Extractor facilities.