Ardteagasc: Conas aipeanna in-athúsáidte a scríobhLink to this heading
Tosaíonn an rang teagaisc chun cinn seo nuair a d'fhág :d oc: Tutorial 8 < / intro/tutorial08> as. Beimid ag casadh ár vótaíocht gréasáin i bpacáiste Python neamhspleách is féidir leat a athúsáid i dtionscadail nua agus a roinnt le daoine eile.
Mura bhfuil Ranganna Teagaisc 1–8 críochnaithe agat le déanaí, molaimid duit iad seo a athbhreithniú ionas go mbeidh do thionscadal samplach ag teacht leis an gceann a gcuirtear síos air thíos.
Baineann cúrsaí ath-inúsáidteLink to this heading
Tá sé a lán oibre a dhearadh, a thógáil, a thástáil agus a chothabháil iarratas gréasáin. Tá fadhbanna coitianta ag go leor tionscadal Python agus Django. Nach mbeadh sé go hiontach dá bhféadfaimis cuid den obair seo a shábháil arís agus arís eile?
Is é reusability an bealach maireachtála i Python. The Python Package Index (PyPI) tá réimse leathan pacáistí ann ar féidir leat a úsáid i do chláir Python féin. Amharc ar Django Packages le haghaidh feidhmchláir in-athúsáidte atá ann cheana a d'fhéadfá a ionchorprú i do thionscadal. Is gnáthphacáiste Python é Django féin freisin. Ciallaíonn sé seo gur féidir leat pacáistí Python nó feidhmchláir Django atá ann cheana féin a ghlacadh agus iad a chumadh i do thionscadal gréasáin féin. Ní gá duit ach na codanna a dhéanann do thionscadal uathúil a scríobh.
Deirimid go raibh tú ag cur tús le tionscadal nua a raibh aip pobalbhreithe ag teastáil uaidh cosúil leis an gceann a raibh muid ag obair air. Conas a dhéantar an aip seo a athúsáid? Ar ámharaí an tsaoil, tá tú go maith ar an mbealach cheana féin. In :d oc:Tutorial 1 </intro/tutorial01>, chonaiceamar conas a d'fhéadfaimis pobalbhreitheanna a dhíchúpláil ón URLconf ar leibhéal an tionscadail ag baint úsáide as include. Sa rang teagaisc seo, glacfaimid céimeanna breise chun an aip a dhéanamh éasca le húsáid i dtionscadail nua agus réidh le foilsiú do dhaoine eile le suiteáil agus le húsáid.
Do thionscadal agus d'aip ath-inúsáidteLink to this heading
Tar éis na ranganna teagaisc roimhe seo, ba chóir go mbeadh cuma mar seo ar ár dtionscadal:
djangotutorial/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
0001_initial.py
models.py
static/
polls/
images/
background.png
style.css
templates/
polls/
detail.html
index.html
results.html
tests.py
urls.py
views.py
templates/
admin/
base_site.html
Chruthaigh tú djangotutorial/templates in :d oc:'Tutorial 7 </intro/tutorial07>', agus polls/templates in :d oc:'Tutorial 3 </intro/tutorial03>'. Anois, b'fhéidir go bhfuil sé níos soiléire cén fáth ar roghnaigh muid eolairí teimpléid ar leith a bheith againn don tionscadal agus don chur i bhfeidhm: tá gach rud atá mar chuid d'iarratas na bpobalbhreitheanna i polls. Déanann sé an t-iarratas féinchuimsitheach agus níos éasca le titim isteach i dtionscadal nua.
The polls directory could now be copied into a new Django project and
immediately reused. It's not quite ready to be published though. For that, we
need to package the app to make it easy for others to install.
Roinnt réamhriachtanais a shuiteáilLink to this heading
Tá staid reatha pacáistiú Python beagán measctha le huirlisí éagsúla. Don rang teagaisc seo, úsáidfimid setuptools chun ár bpacáiste a thógáil. Is é an uirlis pacáistithe molta é (cumasc leis an bhforc distribute). Beidh pip á úsáid againn freisin chun é a shuiteáil agus a dhíshuiteáil. Ba cheart duit an dá phacáiste seo a shuiteáil anois. Má tá cabhair uait, is féidir leat tagairt a dhéanamh do conas Django a shuiteáil le pip. Is féidir leat `` setuptools`` a shuiteáil ar an mbealach céanna.
Pacáistiú d'aipLink to this heading
Is éard atá i gceist le Python phacáistiú ná d’aip a ullmhú i bhformáid ar leith ar féidir é a shuiteáil agus a úsáid go héasca. Tá Django féin pacáistithe go mór mar seo. I gcás aip bheag cosúil le pobalbhreith, níl an próiseas seo ró-dheacair.
Ar dtús, cruthaigh máthairchomhadlann don phacáiste, lasmuigh de do thionscadal Django. Glaoigh ar an eolaire seo
django-polls.Bog an t-eolaire
polls` isteach san eolaire``django-polls, agus athainmnigh é go``django_polls``.Cuir
django_polls/apps.pyin eagar ionas go mbeidh :attr:'~. Tagraíonn AppConfig.name' d'ainm an mhodúil nua agus cuir :attr:'~. AppConfig.label' chun ainm gearr a thabhairt ar an bhfeidhmchlár:django-polls/django_polls/apps.pyfrom django.apps import AppConfig class PollsConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "django_polls" label = "polls"Cruthaigh comhad
django-polls/README.rstleis an ábhar seo a leanas:django-polls/README.rst============ django-polls ============ django-polls is a Django app to conduct web-based polls. For each question, visitors can choose between a fixed number of answers. Detailed documentation is in the "docs" directory. Quick start ----------- 1. Add "polls" to your INSTALLED_APPS setting like this:: INSTALLED_APPS = [ ..., "django_polls", ] 2. Include the polls URLconf in your project urls.py like this:: path("polls/", include("django_polls.urls")), 3. Run ``python manage.py migrate`` to create the models. 4. Start the development server and visit the admin to create a poll. 5. Visit the ``/polls/`` URL to participate in the poll.Cruthaigh comhad
django-polls/LICENSE. Tá roghnú ceadúnais thar raon feidhme an teagaisc seo, ach is leor a rá go bhfuil an cód a scaoiltear go poiblí gan cheadúnas *useless *. Django agus go leor apps Django-comhoiriúnach a dháileadh faoin gceadúnas BSD; mar sin féin, tá tú saor in aisce do cheadúnas féin a roghnú. Just a bheith ar an eolas go mbeidh tionchar ag do rogha ceadúnaithe ar cé atá in ann do chód a úsáid.Ansin cruthóimid an comhad `` pyproject.toml`` ina sonraítear conas an aip a thógáil agus a shuiteáil. Tá míniú iomlán ar an gcomhad seo lasmuigh de scóip an teagaisc seo, ach tá míniú maith ar an Python Packaging User Guide. Cruthaigh an comhad
django-polls/pyproject.tomlleis an ábhar seo a leanas:django-polls/pyproject.toml[build-system] requires = ["setuptools>83"] build-backend = "setuptools.build_meta" [project] name = "django-polls" version = "0.1" dependencies = [ "django>=X.Y", # Replace "X.Y" as appropriate ] description = "A Django app to conduct web-based polls." readme = "README.rst" license = "BSD-3-Clause" requires-python = ">= 3.10" authors = [ {name = "Your Name", email = "yourname@example.com"}, ] classifiers = [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: X.Y", # Replace "X.Y" as appropriate "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", ] [project.urls] Homepage = "https://www.example.com/"Tá go leor comhad coitianta agus modúil agus pacáistí Python san áireamh sa phacáiste de réir réamhshocraithe. Chun comhaid bhreise a chur san áireamh, beidh orainn comhad
MANIFEST.ina chruthú. Chun na teimpléid agus na comhaid statacha a chur san áireamh, cruthaigh comhaddjango-polls/MANIFEST.inleis an ábhar seo a leanas:django-polls/MANIFEST.inrecursive-include django_polls/static * recursive-include django_polls/templates *Tá sé roghnach, ach moltar é, doiciméid mhionsonraithe a chur san áireamh le d'aip. Cruthaigh eolaire folamh
django-polls/docsle haghaidh doiciméadú amach anseo.Tabhair faoi deara nach mbeidh an t-eolaire
docssan áireamh i do phacáiste mura gcuireann tú roinnt comhad leis. Soláthraíonn go leor aipeanna Django a ndoiciméadú ar líne freisin trí shuíomhanna mar readthedocs.org.Many Python projects, including Django and Python itself, use Sphinx to build their documentation. If you choose to use Sphinx you can link back to the Django documentation by configuring Intersphinx and including a value for Django in your project's
intersphinx_mappingvalue:intersphinx_mapping = { # ... "django": ( "https://docs.djangoproject.com/en/stable/", None, ), }With that in place, you can then cross-link to specific entries, in the same way as in the Django docs, such as "
:attr:`django.test.TransactionTestCase.databases`".Check that the build package is installed (
python -m pip install build) and try building your package by runningpython -m buildinsidedjango-polls. This creates a directory calleddistand builds your new package into source and binary formats,django_polls-0.1.tar.gzanddjango_polls-0.1-py3-none-any.whl.
Le haghaidh tuilleadh eolais ar phacáistiú, féach Tutorial on Packaging and Distributing Projects <https://packaging.python.org/tutorials/packaging-projects/> le Python_.
Do phacáiste féin a úsáidLink to this heading
Ó bhogamar an t-eolaire polls amach as an tionscadal, níl sé ag obair a thuilleadh. Déanfaimid é seo a shocrú anois trínár bpacáiste nua django-polls a shuiteáil.
Chun an pacáiste a shuiteáil, bain úsáid as pip (tá tú cheana féin: ref: 'suiteáilte sé <installing-reusable-apps-prerequisites>', ceart?):
python -m pip install --user django-polls/dist/django_polls-0.1.tar.gzNuashonraigh
mysite/settings.pychun ainm an mhodúil nua a chur in iúl:INSTALLED_APPS = [ "django_polls.apps.PollsConfig", ..., ]Nuashonraigh
mysite/urls.pychun ainm an mhodúil nua a chur in iúl:urlpatterns = [ path("polls/", include("django_polls.urls")), ..., ]Rith an freastalaí forbartha chun a dheimhniú go leanann an tionscadal ag obair.
D'aip a fhoilsiúLink to this heading
Anois agus django-polls pacáistithe agus tástáilte againn, tá sé réidh le roinnt leis an domhan mór! Mura raibh anseo ach sampla, d'fhéadfá anois:
Ríomhphost an pacáiste chuig cara.
Uaslódáil an pacáiste ar do láithreán gréasáin.
Cuir an pacáiste ar stór poiblí, mar shampla Innéacs Pacáiste Python (PyPI). Tá packaging.python.org a good tutorial chun é seo a dhéanamh.
Pacáistí Python a shuiteáil le timpeallacht fhíorúilLink to this heading
Níos luaithe, shuiteáil muid django-polls mar leabharlann úsáideora. Tá roinnt míbhuntáistí ag baint leis seo:
Is féidir le modhnú na leabharlanna úsáideora dul i bhfeidhm ar bhogearraí Python eile ar do chóras.
Ní bheidh tú in ann leaganacha iolracha den phacáiste seo (nó leaganacha eile leis an ainm céanna) a rith.
Go hiondúil, ní thagann na cásanna seo chun cinn ach amháin nuair a bhíonn roinnt tionscadal Django á gcothabháil agat. Nuair a dhéanann siad, is é an réiteach is fearr ná venv a úsáid. Ligeann an uirlis seo duit timpeallachtaí iomadúla iargúlta Python a chothabháil, gach ceann acu lena chóip féin de na leabharlanna agus ainmspás an phacáiste.