Davet et, 1 ay ücretsiz Pro kazanNasıl çalışır?

Codex ile Flask Projesi Geliştirme: Adım Adım Rehber

Codex’i Flask projenize nasıl entegre edeceğinizi, AGENTS.md ile bağlamı nasıl kuracağınızı ve test döngüsünü nasıl yöneteceğinizi pratik örneklerle öğrenin.

Solviera Teknoloji 4 dk okuma

Codex, terminalde codex komutuyla başlattığınız bir kodlama ajanıdır. Flask projelerinde blueprint, application factory, Jinja ve SQLAlchemy gibi yapıları okuyup mevcut desenlere uygun değişiklikler yapabilir; projeye özel komutları AGENTS.md ile verdiğinizde isabet oranı belirgin biçimde artar. Bu rehber, Codex’i Flask iş akışınıza pratik olarak nasıl yerleştireceğinizi gösterir.

Codex neden Flask işine uygun

Flask projeleri genellikle küçük, okunaklı dosyalara ayrılır: app/__init__.py, models.py, blueprint dosyaları, şablonlar ve testler. Codex bu dosya haritasını hızlı çıkarır; create_app içindeki kayıt sırasını, blueprint’lerin url_prefix değerlerini ve Jinja şablonlarının extends/block yapısını anlamakta iyidir. Elinizdeki proje bu kalıplara uyuyorsa ajan, boilerplate üretmek yerine mevcut yapıyı genişletir. Yine de Flask’ın uygulama bağlamı, current_app, g ve SQLAlchemy oturum yönetimi gibi hassas noktaları vardır; bu yüzden ajanı serbest bırakmadan önce AGENTS.md ile sınırları çizmek gerekir. Codex hakkında temel bilgileri içeren sayfa, CLI davranışını anlamak için başlangıç olabilir.

Projeyi ajan için hazırlama

Codex proje kökünde AGENTS.md arar. Bu dosyaya Flask’a özel komutlar, klasör düzeni ve kod kalıpları yazarsanız her oturumda aynı bağlamı tekrar anlatmazsınız. Aşağıdaki örnek, küçük bir Flask uygulaması için yeterli bir başlangıçtır:

# AGENTS.md

## Komutlar
- Kurulum: `pip install -r requirements.txt`
- Geliştirme: `flask --app run.py run --debug`
- Test: `pytest -q`
- Lint: `ruff check app tests`

## Klasör yapısı
- `app/` uygulama paketi; `app/__init__.py` içinde `create_app` fabrikası
- `app/blueprints/` her özellik için bir blueprint
- `app/templates/` Jinja şablonları
- `app/models.py` SQLAlchemy modelleri
- `tests/` pytest testleri

## Flask kuralları
- Yeni özelliği mevcut blueprint'e ekle; yeni blueprint oluşturuyorsan `create_app` içinde kaydet.
- `current_app`, `g` gibi nesneleri yalnızca request/context içinde kullan; context dışında erişme.
- SQLAlchemy oturumunu `commit`'lemeden önce hataları yakala, `rollback` yap.
- Jinja şablonlarında tanımsız filtre veya global kullanma; gerekiyorsa `app.jinja_env` üzerinden kaydet.

Bu dosya ne kadar net olursa Codex’in ürettiği kod o kadar projeye oturur. Bağlamın nasıl yapılandırılacağına dair daha geniş bir çerçeve için bağlam mühendisliği rehberine göz atabilirsiniz.

Çalışma döngüsü

Codex’i tek seferde büyük bir refactor yapmak için değil, planla → küçük adım at → test et → diff’i incele döngüsüyle kullanın. Önce ajanın ne yapacağını sözlü olarak planlamasını isteyin; sonra değişikliği yaptırın; ardından pytest -q çalıştırıp kırılan testleri düzeltmesini söyleyin. Her adımda git diff veya Codex’in gösterdiği değişiklikleri inceleyin; özellikle context manager, import satırları ve blueprint kayıt sırası gibi Flask’a özgü ayrıntılara bakın.

Flask projelerinde sık kullanacağınız istem örnekleri:

  • “app/auth/views.py içindeki login view’ına hata mesajlarını flash ile ekle, form boş gelirse 400 döndür. Önce planı göster, sonra kodu değiştir.”
  • “User modeline last_login alanı ekle, migration oluşturma; mevcut testleri çalıştır ve kırılanları düzelt.”
  • “create_app içindeki blueprint kayıtlarını gözden geçir; auth blueprint’inin url_prefix='/auth' ile bağlı olduğundan emin ol.”
  • “tests/test_auth.py içine login başarılı ve başarısız senaryolar için iki pytest testi yaz.”
  • “app/templates/base.html içindeki blok yapısını bozmadan navbara aktif sayfa vurgusu ekle.”

Bu döngüyü her görev için tekrarlayın; büyük değişiklikleri üç-beş küçük istem halinde bölün.

Codex’in iyi olduğu Flask işleri ve tuzaklar

Flask özelinde Codex; form doğrulama, basit CRUD route’ları, SQLAlchemy sorguları, Jinja şablon düzenlemeleri ve pytest testleri yazmada hızlıdır. Ancak aşağıdaki tabloda görüldüğü gibi her görev türünde belirli riskler vardır:

Görevİyi istemDikkat edilecek nokta
Blueprint ekleme“Yeni dashboard blueprint’ini oluştur ve create_app içine kaydet.”Blueprint import döngüsü, url_prefix ve kayıt sırası.
SQLAlchemy sorgusu“Son 7 gündeki aktif kullanıcıları getiren bir query yaz ve test ekle.”Oturum kapatma, lazy load, N+1 sorgu.
Jinja şablon düzenleme“Ürün listesi şablonuna fiyat formatı ekle; mevcut blokları koru.”Tanımsız filtre, değişken adı çakışması, block hiyerarşisinin bozulması.
Test ekleme“Yeni endpoint için view testi yaz; app.test_client() ve uygulama bağlamı kullan.”current_app’i context dışında kullanma, test sonrası db.session.remove() eksikliği.

Codex bazen current_app’i modül düzeyinde kullanmak, db.session’i kapatmadan bırakmak veya blueprint’i kaydetmeden route yazmak gibi hatalar üretebilir. Bu nedenle diff’i okumadan birleştirmeyin.

Test ve doğrulama

Codex ile çalışırken doğrulamayı yalnızca ajanın söylediğine bırakmayın. Her değişiklikten sonra pytest -q çalıştırın; hata varsa ajanın düzeltmesini isteyin. Flask test istemcisini kullanan entegrasyon testleri, view’ların gerçek HTTP davranışını daha iyi yakalar:

def test_login_success(client):
    response = client.post('/auth/login', data={'email': 'a@b.com', 'password': 'secret'})
    assert response.status_code == 302
    assert '/dashboard' in response.headers['Location']

Codex’e “bu testi tests/test_auth.py içine ekle ve pytest -q ile çalıştır” dediğinizde hem testi yazar hem de hata ayıklama döngüsünü kendisi yürütür. Testlerin yanında flask routes komutuyla blueprint’lerin doğru kaydedildiğini, ruff check app tests ile lint hatalarını kontrol edin. Doğrulama adımını her küçük değişiklikte tekrarlamak, Flask’a özgü bağlam hatalarını erken yakalar.

Birden çok ajanla çalışma

Flask projesinde birden çok Codex oturumunu paralel yürütmek isterseniz AgentVera uygun bir ortamdır. AgentVera nasıl kullanılır sayfasındaki anlatım, çok ajanlı kurulumu gösterir. Her ajan kendi git worktree’sinde çalıştığı için app/blueprints gibi ortak klasörlerde dosya çakışması yaşanmaz; bir ajan durduğunda ikinci model kodu otomatik inceler ve bulgular dosya:satır olarak işaretlenir. Token bütçeleri sayesinde gece uzun süren işlerde maliyet sınırlanır ve ajan durduğunda konuşma korunur. Bu üç özellik, Flask gibi dosya sayısı çok olan projelerde hem güvenliği hem hızı artırır.

Özet

Flask projelerinde Codex’i verimli kullanmanın anahtarı, AGENTS.md ile net bir bağlam kurmak, işi küçük adımlara bölmek ve her adımı pytest ile doğrulamaktır. Ajan, blueprint, uygulama fabrikası, Jinja ve SQLAlchemy kalıplarını öğrenir; siz de context yönetimi, oturum kapatma ve diff incelemesi gibi hassas noktaları elde tutarsınız. Böylece Codex hızlı bir yardımcı olur, riskli bir otomatik pilot değil.

Sık sorulanlar

Codex Flask projesinde nasıl başlatılır?

Proje kök dizininde terminal açıp codex komutunu çalıştırın. Kod tabanını ve AGENTS.md dosyasını okur; istemleri Flask blueprint, uygulama fabrikası veya şablon düzenlemeleri gibi net görevlerle verin.

Codex için AGENTS.md dosyasına ne yazmalıyım?

Flask’a özel komutlar (örneğin flask run, pytest, lint), klasör yapısı, blueprint ve application factory kuralı, SQLAlchemy kullanımı ve commit mesajı beklentilerini ekleyin.

Codex’i Flask projesinde testlerle nasıl kullanırım?

Her değişiklikten sonra Codex’e pytest çalıştırmasını ve hataları düzeltmesini söyleyin. Test kapsamını özellikle view, form ve model davranışları için küçük parçalarda doğrulayın.

Codex Flask’ta hangi hataları yapabilir?

Uygulama bağlamı dışında current_app kullanmak, SQLAlchemy oturumlarını yanlış yönetmek, blueprint register sırasını unutmak ve Jinja’da import edilmemiş filtreleri kullanmak gibi hatalar yapabilir; diff’i inceleyin.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer Codex rehberleri

Flask için diğer ajanlar