{"id":15748,"date":"2024-12-22T11:04:24","date_gmt":"2024-12-22T09:04:24","guid":{"rendered":"https:\/\/www.beseit.net\/?p=15748"},"modified":"2024-12-23T20:14:09","modified_gmt":"2024-12-23T18:14:09","slug":"estructura-basica-de-projecte-python-amb-django-en-entorn-virtual","status":"publish","type":"post","link":"https:\/\/www.beseit.net\/?p=15748","title":{"rendered":"Estructura b\u00e0sica de projecte Python amb Django en entorn virtual"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>holaMon\/\n\u251c\u2500\u2500 db.sqlite3\n\u251c\u2500\u2500 env\/\n\u251c\u2500\u2500 hola\/\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 admin.py\n\u2502   \u251c\u2500\u2500 apps.py\n\u2502   \u251c\u2500\u2500 migrations\/\n\u2502   \u2502   \u2514\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 models.py\n\u2502   \u251c\u2500\u2500 tests.py\n\u2502   \u251c\u2500\u2500 urls.py\n\u2502   \u2514\u2500\u2500 views.py\n\u251c\u2500\u2500 holaMon_Dy\/\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 asgi.py\n\u2502   \u251c\u2500\u2500 settings.py\n\u2502   \u251c\u2500\u2500 urls.py\n\u2502   \u2514\u2500\u2500 wsgi.py\n\u251c\u2500\u2500 manage.py\n\u2514\u2500\u2500 venv\/\n<\/code><\/pre>\n\n\n\n<p>Aquesta estructura cobreix els fitxers i carpetes essencials per a un projecte Django.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Descripci\u00f3 de cada fitxer:<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>db.sqlite3<\/strong>: Aquest fitxer \u00e9s la base de dades SQLite del projecte. Emmagatzema totes les dades del projecte.<\/li>\n\n\n\n<li><strong>env\/<\/strong>: Aquesta carpeta cont\u00e9 l&#8217;entorn virtual del projecte. Inclou totes les depend\u00e8ncies i paquets instal\u00b7lats per al projecte.<\/li>\n\n\n\n<li><strong>hola\/<\/strong>: Aquesta carpeta cont\u00e9 l&#8217;aplicaci\u00f3 <code>hola<\/code>. Cada aplicaci\u00f3 Django t\u00e9 una estructura similar amb els seg\u00fcents fitxers:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f20808\" class=\"has-inline-color\">views.py<\/mark> (dins de l'aplicaci\u00f3 hola):\nfrom django.http import HttpResponse\n\ndef hola_mon(request):\n    return HttpResponse(\"Hola, m\u00f3n!\")\n\n<strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f40d0d\" class=\"has-inline-color\">urls.py<\/mark> (dins de l'aplicaci\u00f3 hola):<\/strong>\nfrom django.urls import path\nfrom . import views\n\nurlpatterns = &#91;\n    path('', views.hola_mon, name='hola_mon'),\n]\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>init<\/strong>.py: Indica que aquesta carpeta \u00e9s un paquet Python.<\/li>\n\n\n\n<li><strong>admin.py<\/strong>: Cont\u00e9 configuracions per a l&#8217;administraci\u00f3 de l&#8217;aplicaci\u00f3.<\/li>\n\n\n\n<li><strong>apps.py<\/strong>: Cont\u00e9 la configuraci\u00f3 de l&#8217;aplicaci\u00f3.<\/li>\n\n\n\n<li><strong>migrations\/<\/strong>: Cont\u00e9 els fitxers de migraci\u00f3 de la base de dades.\n<ul class=\"wp-block-list\">\n<li><strong>init<\/strong>.py: Indica que aquesta carpeta \u00e9s un paquet Python.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>models.py<\/strong>: Cont\u00e9 els models de dades de l&#8217;aplicaci\u00f3.<\/li>\n\n\n\n<li><strong>tests.py<\/strong>: Cont\u00e9 les proves unit\u00e0ries per a l&#8217;aplicaci\u00f3.<\/li>\n\n\n\n<li><strong>urls.py<\/strong>: Cont\u00e9 les configuracions de les URL de l&#8217;aplicaci\u00f3.<\/li>\n\n\n\n<li><strong>views.py<\/strong>: Cont\u00e9 les vistes de l&#8217;aplicaci\u00f3.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>holaMon_Dy\/<\/strong>: Aquesta carpeta cont\u00e9 la configuraci\u00f3 del projecte principal.\n<ul class=\"wp-block-list\">\n<li><strong>init<\/strong>.py: Indica que aquesta carpeta \u00e9s un paquet Python.<\/li>\n\n\n\n<li><strong>asgi.py<\/strong>: Configuraci\u00f3 per a l&#8217;ASGI (Asynchronous Server Gateway Interface).<\/li>\n\n\n\n<li><strong>settings.py<\/strong>: Cont\u00e9 la configuraci\u00f3 del projecte.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f80c0c\" class=\"has-inline-color\">settings.py<\/mark><\/strong> (dins del projecte principal <code>holaMon_Dy<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSTALLED_APPS = &#91;\n    'hola',\n    'django.contrib.admin',\n    'django.contrib.auth',\n    'django.contrib.contenttypes',\n    'django.contrib.sessions',\n    'django.contrib.messages',\n    'django.contrib.staticfiles',\n]\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>urls.py<\/strong>: Cont\u00e9 les configuracions de les URL del projecte principal.<\/li>\n<\/ul>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f11c1c\" class=\"has-inline-color\">urls.py<\/mark><\/strong> (dins del projecte principal <code>holaMon_Dy<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.contrib import admin\nfrom django.urls import include, path\n\nurlpatterns = &#91;\n    path('admin\/', admin.site.urls),\n    path('hola-mon\/', include('hola.urls')),\n]\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>wsgi.py<\/strong>: Configuraci\u00f3 per al WSGI (Web Server Gateway Interface).<\/li>\n\n\n\n<li><strong>manage.py<\/strong>: Aquest fitxer \u00e9s una utilitat de l\u00ednia de comandes que permet interactuar amb el projecte Django. Pots utilitzar-lo per executar el servidor, fer migracions, crear aplicacions, etc.<\/li>\n\n\n\n<li><strong>venv\/<\/strong>: Aquesta carpeta cont\u00e9 l&#8217;entorn virtual del projecte. Inclou totes les depend\u00e8ncies i paquets instal\u00b7lats per al projecte.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>views.py<\/strong> (dins de l&#8217;aplicaci\u00f3 <code>hola<\/code>):python<code>from django.http import HttpResponse def hola_mon(request): return HttpResponse(\"Hola, m\u00f3n!\")<\/code><\/li>\n\n\n\n<li><strong>urls.py<\/strong> (dins de l&#8217;aplicaci\u00f3 <code>hola<\/code>):python<code>from django.urls import path from . import views urlpatterns = [ path('', views.hola_mon, name='hola_mon'), ]<\/code><\/li>\n\n\n\n<li><strong>urls.py<\/strong> (dins del projecte principal <code>holaMon_Dy<\/code>):python<code>from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin\/', admin.site.urls), path('hola-mon\/', include('hola.urls')), ]<\/code><\/li>\n\n\n\n<li><strong>settings.py<\/strong> (dins del projecte principal <code>holaMon_Dy<\/code>):python<code>INSTALLED_APPS = [ 'hola', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]<\/code><\/li>\n<\/ul>\n\n\n\n<p>Espero que aquesta descripci\u00f3 t&#8217;ajudi a entendre millor l&#8217;estructura i el contingut del projecte Django. Si tens qualsevol altra pregunta o necessites m\u00e9s ajuda, estic aqu\u00ed per ajudar-te!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Com lla\u00e7o el projecte?<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aquesta estructura cobreix els fitxers i carpetes essencials per a un projecte Django. Descripci\u00f3 de cada fitxer: settings.py (dins del projecte principal holaMon_Dy): urls.py (dins del projecte principal holaMon_Dy): Espero que aquesta descripci\u00f3 t&#8217;ajudi a entendre millor l&#8217;estructura i el &hellip; <a href=\"https:\/\/www.beseit.net\/?p=15748\">Continua llegint <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":8179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-15748","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloc-de-notes"],"_links":{"self":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15748"}],"version-history":[{"count":10,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15748\/revisions"}],"predecessor-version":[{"id":15768,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15748\/revisions\/15768"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/media\/8179"}],"wp:attachment":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}