Öğretici: Visual Studio 'da Flask Web çerçevesi ile çalışmaya başlamaTutorial: Get started with the Flask web framework in Visual Studio

Flask , URL yönlendirme ve sayfa işleme için temel bilgileri sağlayan Web uygulamalarına yönelik hafif bir Python çerçevesidir.Flask is a lightweight Python framework for web applications that provides the basics for URL routing and page rendering.

Doğrudan form doğrulaması, veritabanı soyutlama, kimlik doğrulama vb. gibi özellikler sağlamadığından Flask "mikro" çerçevesi olarak adlandırılır.Flask is called a "micro" framework because it doesn't directly provide features like form validation, database abstraction, authentication, and so on. Bu tür özellikler bunun yerine Flask uzantılarıadlı özel Python paketleri tarafından sağlanır.Such features are instead provided by special Python packages called Flask extensions. Uzantılar Flask ile sorunsuz bir şekilde tümleşir, böylece Flask 'nin bir parçası gibi görünürler.The extensions integrate seamlessly with Flask so that they appear as if they are part of Flask itself. Örneğin, Flask 'nın kendisi bir sayfa şablonu altyapısı sağlamıyor.For example, Flask itself doesn't provide a page template engine. Şablon oluşturma, bu öğreticide gösterildiği gibi Jınja ve Jade gibi uzantılar tarafından sağlanır.Templating is provided by extensions such as Jinja and Jade, as demonstrated in this tutorial.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:In this tutorial, you learn how to:

  • "Boş Flask Web projesi" şablonunu kullanarak bir git deposunda temel bir Flask projesi oluşturma (1. adım)Create a basic Flask project in a Git repository using the "Blank Flask Web Project" template (step 1)
  • Tek sayfalı bir Flask uygulaması oluşturun ve bu sayfayı şablon kullanarak oluşturun (2. adım)Create a Flask app with one page and render that page using a template (step 2)
  • Statik dosyaları sunma, sayfa ekleme ve şablon devralmayı kullanma (3. adım)Serve static files, add pages, and use template inheritance (step 3)
  • Birden çok sayfa ve yanıt veren tasarıma sahip bir uygulama oluşturmak için Flask Web projesi şablonunu kullanın (4. adım)Use the Flask Web Project template to create an app with multiple pages and responsive design (step 4)
  • Çeşitli depolama seçeneklerini (Azure Storage, MongoDB veya bellek) kullanan bir yoklama uygulaması oluşturmak için Flask Web projesi şablonunu Yoklat ' i kullanın.Use the Polls Flask Web Project template to create an polling app that uses a variety of storage options (Azure storage, MongoDB, or memory).

Bu adımları izleyerek, üç ayrı proje içeren tek bir Visual Studio çözümü oluşturursunuz.Over the course of these steps you create a single Visual Studio solution that contains three separate projects. Projeyi, Visual Studio ile birlikte gelen farklı Flask proje şablonlarını kullanarak oluşturursunuz.You create the project using different Flask project templates that are included with Visual Studio. Projeleri aynı çözümde tutarak, karşılaştırma için farklı dosyalar arasında kolayca geri ve ileri geçiş yapabilirsiniz.By keeping the projects in the same solution, you can easily switch back and forth between different files for comparison.

Not

Bu öğretici, Flask hakkında daha fazla bilgi edinmenize ve kendi projeleriniz için daha kapsamlı bir başlangıç noktası sağlayan farklı Flask proje şablonlarının nasıl kullanılacağına ilişkin Flask hızlı başlangıçından farklıdır.This tutorial differs from the Flask Quickstart in that you learn more about Flask as well as how to use the different Flask project templates that provide a more extensive starting point for your own projects. Örneğin, proje şablonları otomatik olarak bir proje oluştururken Flask paketini yükler ve hızlı başlangıçta gösterildiği gibi paketi el ile yüklemenizi gerektirir.For example, the project templates automatically install the Flask package when creating a project, rather than needing you to install the package manually as shown in the Quickstart.

ÖnkoşullarPrerequisites

  • Aşağıdaki seçeneklerle Visual Studio 2017 veya üzeri Windows üzerinde:Visual Studio 2017 or later on Windows with the following options:
    • Python geliştirme iş yükü (yükleyicidekiiş yükü sekmesi).The Python development workload (Workload tab in the installer). Yönergeler için bkz. Visual Studio 'Da Python desteğini Yüklemeyi.For instructions, see Install Python support in Visual Studio.
    • Visual Studio Için Windows ve GitHub Uzantısı için Git , kod araçlarıaltındaki tek bileşenler sekmesinde.Git for Windows and GitHub Extension for Visual Studio on the Individual components tab under Code tools.

Flask proje şablonları, önceki Visual Studio için Python Araçları tüm sürümlerine dahildir, ancak Ayrıntılar Bu öğreticide açıklanabilecek verilerden farklı olabilir.Flask project templates are included with all earlier versions of Python Tools for Visual Studio, though details may differ from what's discussed in this tutorial.

Python geliştirme Mac için Visual Studio şu anda desteklenmiyor.Python development is not presently supported in Visual Studio for Mac. Mac ve Linux 'ta Visual Studio Code ' de Python uzantısınıkullanın.On Mac and Linux, use the Python extension in Visual Studio Code.

Adım 1-1: Visual Studio projesi ve çözümü oluşturmaStep 1-1: Create a Visual Studio project and solution

  1. Visual Studio 'da Dosya > Yeni > Proje' yi seçin, "Flask" araması yapın ve boş Flask Web projesi şablonunu seçin.In Visual Studio, select File > New > Project, search for "Flask", and select the Blank Flask Web Project template. (Şablon Python > altında da bulunur Web , sol taraftaki listede.)(The template is also found under Python > Web in the left-hand list.)

    Boş Flask Web projesi için Visual Studio 'da yeni proje iletişim kutusu

  2. İletişim kutusunun altındaki alanlarda aşağıdaki bilgileri girin (önceki grafikte gösterildiği gibi) ve ardından Tamam' ı seçin:In the fields at the bottom of the dialog, enter the following information (as shown in the previous graphic), then select OK:

    • Ad: Visual Studio projesinin adını BasicProjectolarak ayarlayın.Name: set the name of the Visual Studio project to BasicProject. Bu ad ayrıca Flask projesi için de kullanılır.This name is also used for the Flask project.
    • Konum: Visual Studio çözümünün ve projenin oluşturulacağı bir konum belirtin.Location: specify a location in which to create the Visual Studio solution and project.
    • Çözüm adı: Bu öğreticide birden çok projenin kapsayıcısı olarak çözüm olarak uygun olan Learningflaskolarak ayarlanır.Solution name: set to LearningFlask, which is appropriate for the solution as a container for multiple projects in this tutorial.
    • Çözüm için dizin oluştur: kümeyi bırak (varsayılan).Create directory for solution: Leave set (the default).
    • Yeni git deposu oluştur: Visual Studio 'nun çözümü oluşturduğunda yerel bir git deposu oluşturması için bu seçeneği (varsayılan olarak temiz) seçin.Create new Git repository: Select this option (which is clear by default) so that Visual Studio creates a local Git repository when it creates the solution. Bu seçeneği görmüyorsanız, Visual Studio yükleyicisi 'ni çalıştırın ve kod araçları' nın altındaki tek bileşenler sekmesinde Visual Studio için Git ve Windows için GitHub uzantısını ekleyin.If you don't see this option, run the Visual Studio installer and add the Git for Windows and GitHub Extension for Visual Studio on the Individual components tab under Code tools.
  3. Bir süre sonra, Visual Studio Bu projenin dış paketler gerektirdiğini belirten bir iletişim kutusu ister (aşağıda gösterilmiştir).After a moment, Visual Studio prompts you with a dialog saying This project requires external packages (shown below). Bu iletişim kutusu, şablon en son Flask 1. x paketine başvuran bir requirements.txt dosyası içerdiğinden görüntülenir.This dialog appears because the template includes a requirements.txt file referencing the latest Flask 1.x package. (Tam bağımlılıkları görmek için gerekli paketleri göster ' i seçin.)(Select Show required packages to see the exact dependencies.)

    Projenin dış paketler gerektirdiğini söyleyen bir istem

  4. Kendim yükleyeceğimseçeneğini belirleyin.Select the option I will install them myself. Kaynak denetiminden dışlandığından emin olmak için sanal ortamı kısa süre içinde oluşturursunuz.You create the virtual environment shortly to make sure it's excluded from source control. (Ortam her zaman requirements.txtoluşturulabilir.)(The environment can always be created from requirements.txt.)

Adım 1-2: git denetimlerini Inceleme ve uzak depoda yayımlamaStep 1-2: Examine the Git controls and publish to a remote repository

Yeni Proje iletişim kutusunda Yeni git deposu oluştur ' u seçtiğinizden, proje, oluşturma işlemi tamamlandıktan hemen sonra yerel kaynak denetimine zaten kaydedilmiş olur.Because you selected the Create new Git repository in the New Project dialog, the project is already committed to local source control as soon as the creation process is complete. Bu adımda, Visual Studio 'nun git denetimleri ve kaynak denetimi ile birlikte çalıştığınız Takım Gezgini pencere hakkında bilgi edinin.In this step, you familiarize yourself with Visual Studio's Git controls and the Team Explorer window in which you work with source control.

  1. Visual Studio ana penceresinin alt köşesindeki git denetimlerini inceleyin.Examine the Git controls on the bottom corner of the Visual Studio main window. Soldan sağa, bu denetimler gönderilmeyen işlemeler, kaydedilmemiş değişiklikler, deponun adı ve geçerli dalı gösterir:From left to right, these controls show unpushed commits, uncommitted changes, the name of the repository, and the current branch:

    Visual Studio penceresinde git denetimleri

    Not

    Yeni proje iletişim kutusunda Yeni git deposu oluştur ' u seçmezseniz, git denetimleri yalnızca yerel bir depo oluşturan kaynak denetimine Ekle komutunu gösterir.If you don't select the Create new Git repository in the New Project dialog, the Git controls show only an Add to source control command that creates a local repository.

    Bir depo oluşturmadıysanız Visual Studio 'da kaynak denetimine Ekle görüntülenir

  2. Değişiklikler düğmesini seçin ve Visual Studio, değişiklikler sayfasında Takım Gezgini penceresini açar.Select the changes button, and Visual Studio opens its Team Explorer window on the Changes page. Yeni oluşturulan proje kaynak denetimine otomatik olarak zaten yapıldığından, bekleyen bir değişiklik görmezsiniz.Because the newly created project is already committed to source control automatically, you don't see any pending changes.

    Değişiklikler sayfasında Takım Gezgini penceresi

  3. Visual Studio durum çubuğunda, Takım Gezgini' de eşitleme sayfasını açmak için teslim edilmemiş işlemeler düğmesini ( 2ile yukarı ok) seçin.On the Visual Studio status bar, select the unpushed commits button (the up arrow with 2) to open the Synchronization page in Team Explorer. Yalnızca yerel bir depo olduğundan, Bu sayfa depoyu farklı uzak depolara yayımlamak için kolay seçenekler sağlar.Because you have only a local repository, the page provides easy options to publish the repository to different remote repositories.

    Kaynak denetimi için kullanılabilir git deposu seçeneklerini gösteren Takım Gezgini pencere

    Kendi projeleriniz için istediğiniz hizmeti seçebilirsiniz.You can choose whichever service you want for your own projects. Bu öğreticide, öğreticinin tamamlanan örnek kodunun Microsoft/Python-Sample-vs-Learning-Flask deposunda gerçekleştiği GitHub 'ın kullanımı gösterilmektedir.This tutorial shows the use of GitHub, where the completed sample code for the tutorial is maintained in the Microsoft/python-sample-vs-learning-flask repository.

  4. Yayınlama denetimlerinden herhangi birini seçerken Takım Gezgini daha fazla bilgi ister.When selecting any of the Publish controls, Team Explorer prompts you for more information. Örneğin, bu öğretici için örnek yayımlarken, deponun kendisi oluşturulmalıdır, bu durumda depo URL 'SI ile uzak depoya gönderim seçeneği kullanılır.For example, when publishing the sample for this tutorial, the repository itself had to be created first, in which case the Push to Remote Repository option was used with the repository's URL.

    Var olan bir uzak depoya göndermek için Takım Gezgini pencere

    Mevcut bir deponuz yoksa GitHub 'Da Yayımla ve Azure DevOps 'a gönderim seçenekleri, doğrudan Visual Studio içinden bir tane oluşturmanızı sağlar.If you don't have an existing repository, the Publish to GitHub and Push to Azure DevOps options let you create one directly from within Visual Studio.

  5. Bu öğreticide çalışırken, değişiklikleri yürütmek ve göndermek için Visual Studio 'daki denetimleri kullanarak düzenli aralıklarla habite ulaşın.As you work through this tutorial, get into the habit of periodically using the controls in Visual Studio to commit and push changes. Bu öğretici size uygun noktalarda hatırlatır.This tutorial reminds you at appropriate points.

İpucu

Takım Gezginiiçinde hızlıca gezinmek için, kullanılabilir sayfaların açılır menüsünü görmek üzere üstbilgiyi seçin (Yukarıdaki Resimleri okur veya yukarıdaki görüntüleri Gönder ) seçeneğini belirleyin.To quickly navigate within Team Explorer, select the header (that reads Changes or Push in the images above) to see a pop-up menu of the available pages.

Soru: bir projenin başından itibaren kaynak denetimi kullanmanın avantajları nelerdir?Question: What are some advantages of using source control from the beginning of a project?

Cevap: başlangıçtan itibaren kaynak denetimini kullanarak, özellikle de uzak bir depo kullanıyorsanız, projenizin düzenli olarak şirket dışı yedeklemesini sağlar.Answer: First of all, using source control from the start, especially if you also use a remote repository, provides a regular offsite backup of your project. Yalnızca yerel bir dosya sistemindeki bir projeyi korumanın aksine, kaynak denetimi tam bir değişiklik geçmişi ve tek bir dosyayı ya da projenin tamamını önceki bir duruma geri döndürmenin kolay bir özelliğini sağlar.Unlike maintaining a project just on a local file system, source control also provides a complete change history and the easy ability to revert a single file or the whole project to a previous state. Bu değişiklik geçmişi, gerilemelerin nedenini (test arızaları) belirlemenize yardımcı olur.That change history helps determine the cause of regressions (test failures). Ayrıca, bir proje üzerinde birden fazla kişi çalışıyorsa, kaynak denetimi, üzerine yazma işlemlerini yönetirken ve çakışma çözümü sağladığından gereklidir.Furthermore, source control is essential if multiple people are working on a project, as it manages overwrites and provides conflict resolution. Son olarak, otomasyon bir form olan kaynak denetimi, yapıları, testi ve yayın yönetimini otomatikleştirmek için size en iyi şekilde ayarlanır.Finally, source control, which is fundamentally a form of automation, sets you up well for automating builds, testing, and release management. Bu aslında bir proje için DevOps kullanmanın ilk adımıdır ve giriş engelleri bu kadar düşük olduğundan, kaynak denetimini baştan kullanmanın gerçekten bir nedeni yoktur.It's really the first step in using DevOps for a project, and because the barriers to entry are so low, there's really no reason to not use source control from the beginning.

Otomasyon olarak kaynak denetimi hakkında daha fazla bilgi için bkz. Truth 'Nın kaynağı: DevOps 'Daki depoların rolü, MSDN Magazine 'teki Web Apps için de geçerli olan mobil uygulamalar için yazılmış bir makaledir.For further discussion on source control as automation, see The Source of Truth: The Role of Repositories in DevOps, an article in MSDN Magazine written for mobile apps that applies also to web apps.

Soru: Visual Studio 'Nun yeni bir projeyi otomatik olarak çalıştırmasını engelleyebilir miyim?Question: Can I prevent Visual Studio from auto-committing a new project?

Yanıt: Evet.Answer: Yes. Otomatik yürütmeyi devre dışı bırakmak için Takım Gezgini Ayarlar sayfasına gidin, Git > genel ayarları' nı seçin, Varsayılan olarak Birleştirmeden sonra değişiklikleri Yürütetiketli seçeneği temizleyin ve ardından Güncelleştir' i seçin.To disable auto-commit, go to the Settings page in Team Explorer, select Git > Global settings, clear the option labeled Commit changes after merge by default, then select Update.

Adım 1-3: sanal ortam oluşturma ve kaynak denetiminden dışlamaStep 1-3: Create the virtual environment and exclude it from source control

Projeniz için kaynak denetimini yapılandırdığınıza göre, sanal ortamı, projenin gerektirdiği gerekli Flask paketlerini oluşturabilirsiniz.Now that you've configured source control for your project, you can create the virtual environment the necessary Flask packages that the project requires. Ardından, ortam klasörünü kaynak denetiminden dışlamak için Takım Gezgini kullanabilirsiniz.You can then use Team Explorer to exclude the environment's folder from source control.

  1. Çözüm Gezgini, Python ortamları düğümüne sağ tıklayın ve sanal ortam ekle' yi seçin.In Solution Explorer, right-click the Python Environments node and select Add Virtual Environment.

    Çözüm Gezgini sanal ortam komutu Ekle

  2. Bir requirements.txt dosyası bulduğumuz belirten bir Ileti Ile sanal ortam ekle iletişim kutusu görüntülenir.An Add Virtual Environment dialog appears, with a message saying We found a requirements.txt file. Bu ileti, Visual Studio 'Nun sanal ortamı yapılandırmak için bu dosyayı kullandığını gösterir.This message indicates that Visual Studio uses that file to configure the virtual environment.

    requirements.txt iletisiyle sanal ortam iletişim kutusu Ekle

  3. Varsayılanları kabul etmek için Oluştur ' u seçin.Select Create to accept the defaults. (İsterseniz sanal ortamın adını değiştirebilirsiniz, bu, yalnızca alt klasörünün adını değiştirir ancak env Standart bir kuraldır.)(You can change the name of the virtual environment if you want, which just changes the name of its subfolder, but env is a standard convention.)

  4. İstenirse, yönetici ayrıcalıklarına onay vermeniz gerekiyorsa, Visual Studio paketleri indirirken ve yüklerken birkaç dakika bekleyin. Bu durumda, Flask ve bağımlılıkları, 100 ' den fazla alt klasörde binlerce dosya hakkında genişlemekte.Consent to administrator privileges if prompted, then be patient for a few minutes while Visual Studio downloads and installs packages, which for Flask and its dependencies means expanding about a thousand files in over 100 subfolders. İlerlemeyi, Visual Studio çıktı penceresinde görebilirsiniz.You can see progress in the Visual Studio Output window. Beklerken, aşağıdaki soru bölümlerini izleyin.While you're waiting, ponder the Question sections that follow. Flask yükleme sayfasında (Flask.pcocoo.org) Flask 'nın bağımlılıklarından oluşan bir açıklama da görebilirsiniz.You can also see a description of Flask's dependencies on the Flask installation page (flask.pcocoo.org).

  5. Visual Studio git denetimlerinde (durum çubuğunda), Takım Gezginiiçindeki değişiklikler sayfasını açan değişiklikler göstergesini ( 99*) seçin.On the Visual Studio Git controls (on the status bar), select the changes indicator (that shows 99*) which opens the Changes page in Team Explorer.

    Sanal ortam yüzlerce değişikliğe göre oluşturulur, ancak siz (veya projeyi Klonladığınız herkes) her zaman ortamı requirements.txtyeniden oluşturabileceğinden kaynak denetimine bunlardan herhangi birini eklemeniz gerekmez.Creating the virtual environment brought in hundreds of changes, but you don't need to include any of them in source control because you (or anyone else cloning the project) can always recreate the environment from requirements.txt.

    Sanal ortamı dışlamak için env klasörüne sağ tıklayın ve Bu yerel öğeleri yoksay' ı seçin.To exclude the virtual environment, right-click the env folder and select Ignore these local items.

    Kaynak denetimi değişikliklerinde sanal ortam yok sayılıyor

  6. Sanal ortamı dışladıktan sonra, kalan değişiklikler proje dosyası ve . gitignore' dir.After excluding the virtual environment, the only remaining changes are to the project file and .gitignore. . Gitignore dosyası, sanal ortam klasörü için eklenen bir giriş içerir.The .gitignore file contains an added entry for the virtual environment folder. Bir farkı görmek için dosyaya çift tıklayabilirsiniz.You can double-click the file to see a diff.

  7. Bir işleme iletisi girin ve Tümünü Kaydet düğmesini seçin, ardından istediğiniz değişiklikleri uzak deponuza gönderin.Enter a commit message and select the Commit All button, then push the commits to your remote repository if you like.

Soru: neden sanal ortam oluşturmak istiyorum?Question: Why do I want to create a virtual environment?

Cevap: sanal bir ortam, uygulamanızın tam bağımlılıklarını yalıtmak için harika bir yoldur.Answer: A virtual environment is a great way to isolate your app's exact dependencies. Bu tür yalıtımlara genel bir Python ortamında çakışmalar önlenir ve hem test hem de işbirliği yardımcı olur.Such isolation avoids conflicts within a global Python environment, and aids both testing and collaboration. Zaman içinde, bir uygulama geliştirirken, çok sayıda faydalı Python paketini de bir araya getirebilirsiniz.Over time, as you develop an app, you invariably bring in many helpful Python packages. Paketleri projeye özgü bir sanal ortamda tutarak, projenin kaynak denetimine dahil olan bu ortamı açıklayan requirements.txt dosyasını kolayca güncelleştirebilirsiniz.By keeping packages in a project-specific virtual environment, you can easily update the project's requirements.txt file that describes that environment, which is included in source control. Proje, derleme sunucuları, dağıtım sunucuları ve diğer geliştirme bilgisayarları dahil olmak üzere başka bir bilgisayara kopyalandığında, ortamı yalnızca requirements.txt (ortamın kaynak denetiminde olması gerekmez) kullanarak yeniden oluşturmak kolaydır.When the project is copied to any other computers, including build servers, deployment servers, and other development computers, it's easy to recreate the environment using only requirements.txt (which is why the environment doesn't need to be in source control). Daha fazla bilgi için bkz. sanal ortamları kullanma.For more information, see Use virtual environments.

Soru: kaynak denetimine zaten kaydedilmiş bir sanal ortamı kaldırmak Nasıl yaparım? mı?Question: How do I remove a virtual environment that's already committed to source control?

Cevap: Ilk olarak, klasörü hariç tutmak için . gitignore dosyanızı düzenleyin: ile birlikte, açıklama ile sonundaki bölümü bulun # Python Tools for Visual Studio (PTVS) ve sanal ortam klasörü için gibi yeni bir satır ekleyin /BasicProject/env .Answer: First, edit your .gitignore file to exclude the folder: find the section at the end with the comment # Python Tools for Visual Studio (PTVS) and add a new line for the virtual environment folder, such as /BasicProject/env. (Visual Studio Çözüm Gezginidosyayı göstermediğinden, dosyayı doğrudan dosya > kullanarak açın Açık > Dosya menü komutu.(Because Visual Studio doesn't show the file in Solution Explorer, open it directly using the File > Open > File menu command. Dosyayı Takım Gezginiiçinden de açabilirsiniz: Ayarlar sayfasında Depo ayarları' nı seçin, & öznitelik dosyalarını yoksay bölümüne gidin ve sonra . gitignore' in yanındaki Düzenle bağlantısını seçin.You can also open the file from Team Explorer: on the Settings page, select Repository Settings, go to the Ignore & Attributes Files section, then select the Edit link next to .gitignore.)

İkinci olarak, bir komut penceresi açın, envve çalıştırmak gibi sanal ortam klasörünü Içeren BasicProject gibi bir klasöre gidin git rm -r env .Second, open a command window, navigate to the folder like BasicProject that contains the virtual environment folder such as env, and run git rm -r env. Sonra bu değişiklikleri komut satırından ( git commit -m 'Remove venv' ) işleyin veya Takım Gezgini değişiklikler sayfasından işleyin.Then commit those changes from the command line (git commit -m 'Remove venv') or commit from the Changes page of Team Explorer.

Adım 1-4: ortak kodu IncelemeStep 1-4: Examine the boilerplate code

  1. Proje oluşturma işlemi tamamlandıktan sonra, projenin yalnızca iki dosya içerdiği, app.py ve requirements.txt Çözüm Gezginiçözüm ve projeyi görürsünüz:Once project creation completes, you see the solution and project in Solution Explorer, where the project contains only two files, app.py and requirements.txt:

    Çözüm Gezgini 'de boş Flask proje dosyaları

  2. Daha önce belirtildiği gibi, requirements.txt dosyası Flask paket bağımlılığını belirtir.As noted earlier, the requirements.txt file specifies the Flask package dependency. Bu dosyanın varlığı, projeyi ilk oluştururken sanal ortam oluşturmak için sizi davet eder.The presence of this file is what invites you to create a virtual environment when first creating the project.

  3. Tek app.py dosyası üç bölümden oluşur.The single app.py file contains three parts. İlk olarak, bir import Flask için bir ifade, Flask değişkene atanan sınıfının bir örneğini oluşturma app ve sonra bir wsgi_app değişken atama (bir Web ana bilgisayarına dağıtım yaparken faydalıdır, ancak şu anda kullanılmadığında yararlı olur):First is an import statement for Flask, creating an instance of the Flask class, which is assigned to the variable app, and then assigning a wsgi_app variable (which is useful when deploying to a web host, but not used at present):

    from flask import Flask
    app = Flask(__name__)
    
    # Make the WSGI interface available at the top level so wfastcgi can get it.
    wsgi_app = app.wsgi_app
    
  4. İkinci bölüm, dosyanın sonundaki bir Flask geliştirme sunucusunu, ortam değişkenlerinden alınan belirli ana bilgisayar ve bağlantı noktası değerleriyle Başlatan bir isteğe bağlı koddur (varsayılan olarak localhost: 5555):The second part, at the end of the file, is a bit of optional code that starts the Flask development server with specific host and port values taken from environment variables (defaulting to localhost:5555):

    if __name__ == '__main__':
        import os
        HOST = os.environ.get('SERVER_HOST', 'localhost')
        try:
            PORT = int(os.environ.get('SERVER_PORT', '5555'))
        except ValueError:
            PORT = 5555
        app.run(HOST, PORT)
    
  5. Üçüncü, bir URL yoluna bir işlev atayan, işlevin URL tarafından tanımlanan kaynağı sağladığı bir kod olan kısa bir bittir.Third is a short bit of code that assigns a function to a URL route, meaning that the function provides the resource identified by the URL. @app.routeBağımsız değişkeni, site kökünden gelen GÖRELI URL olan Flask dekoratörü kullanarak yollar tanımlarsınız.You define routes using Flask's @app.route decorator, whose argument is the relative URL from the site root. Kodda görebileceğiniz gibi, bu işlev yalnızca bir tarayıcının işlemesi için yeterli olan bir metin dizesi döndürür.As you can see in the code, the function here returns only a text string, which is enough for a browser to render. İzleyen adımlarda, HTML ile daha zengin sayfalar işleyebilirsiniz.In the steps that follow you render richer pages with HTML.

    @app.route('/')
    def hello():
        """Renders a sample page."""
        return "Hello World!"
    

Soru: Flask sınıfına ad bağımsız değişkeninin amacı nedir?Question: What is the purpose of the name argument to the Flask class?

Yanıt: bağımsız değişkeni, uygulamanın modülünün veya paketinin adıdır ve uygulamaya ait şablonlar, statik dosyalar ve diğer kaynakların nerede bakacağını belirtir.Answer: The argument is the name of the app's module or package, and tells Flask where to look for templates, static files, and other resources that belong to the app. Tek bir modülde bulunan uygulamalar için __name__ her zaman uygun değerdir.For apps contained in a single module, __name__ is always the proper value. Hata ayıklama bilgileri gerektiren uzantılar için de önemlidir.It's also important for extensions that need debugging information. Daha fazla bilgi ve ek bağımsız değişkenler için bkz. Flask sınıfı belgeleri (Flask.pocoo.org).For more information, and additional arguments, see the Flask class documentation (flask.pocoo.org).

Soru: bir işlevde birden fazla yol dekoratör olabilir mi?Question: Can a function have more than one route decorator?

Cevap: Evet, aynı işlev birden çok yol için hizmet veriyorsa, istediğiniz sayıda dekoratı kullanabilirsiniz.Answer: Yes, you can use as many decorators as you want if the same function serves multiple routes. Örneğin, hello "/" ve "/Hello" için işlevi kullanmak için aşağıdaki kodu kullanın:For example, to use the hello function for both "/" and "/hello", use the following code:

@app.route('/')
@app.route('/hello')
def hello():
    """Renders a sample page."""
    return "Hello World!"

Soru: nasıl Flask, değişken URL yönlendirmeleri ve sorgu parametreleriyle nasıl çalışır?Question: How does Flask work with variable URL routes and query parameters?

Cevap: bir rotada, ile herhangi bir değişkeni işaretlersiniz <variable_name> ve bir adlandırılmış bağımsız değişken kullanarak değişkeni işlevi işleve geçirir.Answer: In a route, you mark any variable with <variable_name>, and Flask passes the variable to the function using a named argument. Değişken, URL yolunun bir parçası veya bir sorgu parametresi olabilir.The variable can be part of the URL path or in a query parameter. Örneğin, biçiminde bir yol, '/hello/<name> işlevine çağrılan bir dize bağımsız değişkeni oluşturur name ve rotada kullanılması, ?message=<msg> "Message =" sorgu parametresi için verilen değeri ayrıştırır ve şu şekilde işleve geçirir msg :For example, a route in the form of '/hello/<name> generates a string argument called name to the function, and using ?message=<msg> in the route parses the value given for the "message=" query parameter and passes it to the function as msg:

@app.route('/hello/<name>?message=<msg>')
def hello(name, msg):
    return "Hello " + name + "! Message is " + msg + "."

Türü değiştirmek için, değişkeni, int float , path (klasör adlarını belirtmek için eğik çizgileri kabul eder), ve ile önekini yapın uuid .To change the type, prefix the variable with int, float, path (which accepts slashes to delineate folder names), and uuid. Ayrıntılar için Flask belgelerindeki değişken kuralları bölümüne bakın.For details, see Variable rules in the Flask documentation.

Sorgu parametreleri, request.args özellikle yöntemi aracılığıyla özelliği aracılığıyla da kullanılabilir request.args.get .Query parameters are also available through the request.args property, specifically through the request.args.get method. Daha fazla bilgi için Flask belgelerindeki istek nesnesine bakın.For more information, see The Request object in the Flask documentation.

Soru: diğer paketleri yükledikten sonra Visual Studio sanal ortamdan bir requirements.txt dosyası oluşturabilir mi?Question: Can Visual Studio generate a requirements.txt file from a virtual environment after I install other packages?

Yanıt: Evet.Answer: Yes. Python ortamları düğümünü genişletin, sanal ortamınıza sağ tıklayıp requirements.txtoluştur komutunu seçin.Expand the Python Environments node, right-click your virtual environment, and select the Generate requirements.txt command. Ortamı değiştirirken bu komutun düzenli aralıklarla kullanılması ve bu ortama bağlı diğer kod değişiklikleriyle birlikte kaynak denetimine requirements.txt değişiklikler yürütmesi yararlı olur.It's good to use this command periodically as you modify the environment, and commit changes to requirements.txt to source control along with any other code changes that depend on that environment. Bir yapı sunucusunda sürekli tümleştirme ayarlarsanız, ortamı her değiştirdiğinizde dosyayı oluşturmanız ve değişiklikleri uygulamanız gerekir.If you set up continuous integration on a build server, you should generate the file and commit changes whenever you modify the environment.

Adım 1-5: projeyi çalıştırmaStep 1-5: Run the project

  1. Visual Studio 'da hata > ayıklamayı Başlat (F5) ' i seçin veya araç çubuğunda Web sunucusu düğmesini kullanın (gördüğünüz tarayıcı değişebilir):In Visual Studio, select Debug > Start Debugging (F5) or use the Web Server button on the toolbar (the browser you see may vary):

    Visual Studio 'da Web sunucusu araç çubuğu düğmesini Çalıştır

  2. Her iki komut de bağlantı noktası ortam değişkenine rastgele bir bağlantı noktası numarası atar ve sonra çalışır python app.py .Either command assigns a random port number to the PORT environment variable, then runs python app.py. Kod, uygulamayı Flask geliştirme sunucusu içinde bu bağlantı noktasını kullanarak başlatır.The code starts the app using that port within Flask's development server. Visual Studio hata ayıklayıcıyı başlatma dosyası olmayan bir iletiyle başlatmazsa , Çözüm Gezgini içinde app.py öğesine sağ tıklayın ve başlangıç dosyası olarak ayarla' yı seçin.If Visual Studio says Failed to start debugger with a message about having no startup file, right-click app.py in Solution Explorer and select Set as Startup File.

  3. Sunucu başlatıldığında, sunucu günlüğünü görüntüleyen bir konsol penceresi açık görürsünüz.When the server starts, you see a console window open that displays the server log. Sonra Visual Studio otomatik olarak bir tarayıcı açar http://localhost:<port> , burada işlev tarafından işlenmiş iletiyi görürsünüz hello :Visual Studio then automatically opens a browser to http://localhost:<port>, where you should see the message rendered by the hello function:

    Flask proje varsayılan görünümü

  4. İşiniz bittiğinde, konsol penceresini kapatarak veya Debug > Visual Studio 'da hataayıklamayı Durdur komutunu kullanarak sunucuyu durdurun.When you're done, stop the server by closing the console window, or by using the Debug > Stop Debugging command in Visual Studio.

Soru: Hata Ayıkla menü komutlarının ve proje Python alt menüsünde sunucu komutlarının kullanımı arasındaki fark nedir?Question: What's the difference between using the Debug menu commands and the server commands on the project's Python submenu?

Cevap: hata ayıklama menü komutları ve araç çubuğu düğmelerine ek olarak, Python > projenin bağlam menüsündeki Pythonçalıştırma sunucusu veya Python > çalıştırma hata ayıklama sunucusu komutlarını kullanarak sunucuyu da başlatabilirsiniz.Answer: In addition to the Debug menu commands and toolbar buttons, you can also launch the server using the Python > Run server or Python > Run debug server commands on the project's context menu. Her iki komut de çalışan sunucu için yerel URL 'YI (localhost: bağlantı noktası) görebileceğiniz bir konsol penceresi açar.Both commands open a console window in which you see the local URL (localhost:port) for the running server. Ancak, bu URL ile bir tarayıcıyı el ile açmanız gerekir ve hata ayıklama sunucusunu çalıştırmak Visual Studio hata ayıklayıcıyı otomatik olarak başlatmamalıdır.However, you must manually open a browser with that URL, and running the debug server does not automatically start the Visual Studio debugger. Çalıştırmak istiyorsanız, Debug > işlemek için hata ayıkla komutunu kullanarak, çalışan işleme daha sonra bir hata ayıklayıcı ekleyebilirsiniz.You can attach a debugger to the running process later, if you want, using the Debug > Attach to Process command.

Sonraki adımlarNext steps

Bu noktada, temel Flask projesi aynı dosyadaki başlangıç kodunu ve sayfa kodunu içerir.At this point, the basic Flask project contains the startup code and page code in the same file. Bu iki kaygıyı ayırmak ve ayrıca şablonlar kullanarak HTML ve verileri ayırmak için idealdir.It's best to separate these two concerns, and to also separate HTML and data by using templates.

Daha derin gitGo deeper