An aip flatpagesLink to this heading
Tagann Django le feidhmchlár roghnach “flatpages”. Ligeann sé duit ábhar HTML “comhréidh” a stóráil i mbunachar sonraí agus láimhseálann sé an bhainistíocht duit trí chomhéadan riaracháin Django agus API Python.
Is réad é leathanach cothrom le URL, teideal agus ábhar. Úsáid é le haghaidh leathanaigh aonuaire, cásanna speisialta, mar shampla leathanaigh “Maidir” nó “Beartas Príobháideachta”, ar mhaith leat a stóráil i mbunachar sonraí ach nach dteastaíonn uait feidhmchlár saincheaptha Django a fhorbairt dóibh.
Is féidir le leathanach cothrom teimpléad saincheaptha nó teimpléad réamhshocraithe ar fud an chórais a úsáid. Is féidir leis a bheith bainteach le suíomh amháin, nó iolracha.
Féadfar an réimse ábhair a fhágáil bán go roghnach más fearr leat d'ábhar a chur i dteimpléad saincheaptha.
SuiteáilLink to this heading
Chun an aip flatpages a shuiteáil, lean na céimeanna seo:
Suiteáil an creat:mod: sites `trí ``<django.contrib.sites>django.contrib.sites' a chur le do shuíomh: INSTALLED_APPS, mura bhfuil sé ann cheana féin.
Also make sure you've correctly set
SITE_IDto the ID of the site the settings file represents. This will usually be1(i.e.SITE_ID = 1), but if you're using the sites framework to manage multiple sites, it could be the ID of a different site.Cuir ``django.contrib.flatpages'` le do shocrú: INSTALLED_APPS.
Ansin ceachtar:
Cuir iontráil isteach i do URLConf. Mar shampla:
urlpatterns = [ path("pages/", include("django.contrib.flatpages.urls")), ]
nó:
Conas a oibríonn séLink to this heading
Cruthaíonn manage.py migrate dhá thábla i do bhunachar sonraí: django_flatpage agus django_flatpage_sites. Is tábla cuardaigh é django_flatpage a mhéapálann URL chuig teideal agus dornán ábhar téacs. Comhcheanglaíonn django_flatpage_sites leathanach cothrom le suíomh.
Ag baint úsáide as an URLConfLink to this heading
Tá bealaí éagsúla ann chun na leathanaigh chomhréidh a áireamh i do URLConf. Is féidir leat cosán áirithe a thiomnú chuig leathanaigh chomhréidh:
urlpatterns = [
path("pages/", include("django.contrib.flatpages.urls")),
]
Is féidir leat é a chur ar bun mar phatrún “catchall” freisin. Sa chás seo, tá sé tábhachtach an patrún a chur ag deireadh na urlpattern eile:
from django.contrib.flatpages import views
# Your other patterns here
urlpatterns += [
re_path(r"^(?P<url>.*/)$", views.flatpage),
]
Another common setup is to use flat pages for a limited set of known pages and to hard code their URLs in the URLconf:
from django.contrib.flatpages import views
urlpatterns += [
path("about-us/", views.flatpage, kwargs={"url": "/about-us/"}, name="about"),
path("license/", views.flatpage, kwargs={"url": "/license/"}, name="license"),
]
The kwargs argument sets the url value used for the FlatPage model
lookup in the flatpage view.
The name argument allows the URL to be reversed in templates, for example
using the url template tag.
Ag baint úsáide as an middlewareLink to this heading
Is féidir leis an:class: ~django.contrib.flatpages.middleware.flatpageFallbackmiddleware an obair go léir a dhéanamh.
- class FlatpageFallbackMiddlewareLink to this definition
Gach uair a ardaíonn aon fheidhmchlár Django earráid 404, seiceálann an middleware seo bunachar sonraí na flatpages don URL iarrtha mar rogha dheiridh. Go sonrach, seiceálann sé leathanach comhréidh leis an URL tugtha le ID láithreáin a fhreagraíonn don socrú: setting: SITE_ID.
Má aimsíonn sé meaitseáil, leanann sé an algartam seo:
Má tá teimpléad saincheaptha ag an flatpage, luchtaíonn sé an teimpléad sin. Seachas sin, luchtaíonn sé an teimpléad:file: flatpages/default.html.
Cuireann sé athróg comhthéacs aonair ar an teimpléad sin, flatpage`, arb é an réad leathanaigh réidh. Úsáideann sé: aicme: ~django.template.requestContext chun an teimpléad a rindreáil.
Ní chuirfidh an middleware slasc agus atreorú (trí fhéachaint ar an socrú: “APPEND_SLASH`”) má thagraíonn an URL mar thoradh air do leathanach comhréidh bailí. Tá athreoruithe buan (cód stádais 301).
Mura bhfaigheann sé meaitseáil, leanann an t-iarratas á phróiseáil mar is gnách.
Ní ghníomhaítear an middleware ach ar feadh 404s - ní le haghaidh 500s nó freagraí ar aon chód stádais eile.
Tabhair faoi deara go bhfuil tábhacht ag ordú:setting: MIDDLEWARE. Go ginearálta, is féidir leat: class: ~django.contrib.flatpages.middleware.flatpageFallBackMiddleware a chur ag deireadh an liosta. Ciallaíonn sé seo go rithfidh sé ar dtús agus an freagra á bpróiseáil, agus cinntíonn sé go bhfeiceann aon mheánearraí próiseála freagartha eile an fíor-fhreagairt leathanaigh réidh seachas an 404.
Le haghaidh tuilleadh eolais faoi middleware, léigh an:doc: middle</topics/http/middleware> ware docs.
Conas leathanaigh réidh a chur leis, a athrú agus a scriosadhLink to this heading
Tríd an gcomhéadan riaracháinLink to this heading
Má tá an comhéadan riaracháin Django uathoibríoch curtha i ngníomh agat, ba chóir duit rannán “Flatpages” a fheiceáil ar an leathanach innéacs riaracháin. Cuir leathanaigh cothrom in eagar agus tú in eagar aon rud eile sa chóras.
Tá réimse enable_comments sa tsamhail flatpage nach n-úsáideann contrib.flatpages`, ach d'fhéadfadh sé sin a bheith úsáideach do do thionscadal nó d'aipeanna tríú páirtí. Níl sé le feiceáil sa chomhéadan riaracháin, ach is féidir leat é a chur leis trí “ModelAdmin” saincheaptha a chlárú le haghaidh flatpage:
from django.contrib import admin
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
from django.utils.translation import gettext_lazy as _
# Define a new FlatPageAdmin
class FlatPageAdmin(FlatPageAdmin):
fieldsets = [
(None, {"fields": ["url", "title", "content", "sites"]}),
(
_("Advanced options"),
{
"classes": ["collapse"],
"fields": [
"enable_comments",
"registration_required",
"template_name",
],
},
),
]
# Re-register FlatPageAdmin
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageAdmin)
Trí API PythonLink to this heading
Flatpages are represented by a standard
Django model, FlatPage. You can access
flatpage objects via the Django database API.
FlatPage modelLink to this heading
- class models.FlatPageLink to this definition
RéimsíLink to this heading
FlatPage objects have the following
fields:
- class models.FlatPage
- urlLink to this definition
Required. 100 characters or fewer. Indexed for faster lookups.
- titleLink to this definition
Required. 200 characters or fewer.
- contentLink to this definition
Optional (
blank=True).TextFieldthat typically, contains the HTML content of the page.
- enable_commentsLink to this definition
Boolean. This field is not used by
flatpagesby default and does not appear in the admin interface. Please see flatpages admin interface section for a detailed explanation.
- template_nameLink to this definition
Optional (
blank=True). 70 characters or fewer. Specifies the template used to render the page. Defaults toflatpages/default.htmlif not provided.
- sitesLink to this definition
Many-to-many relationship to
Site, which determines the sites the flatpage is available on.
ModhannaLink to this heading
- class models.FlatPage
- get_absolute_url()Link to this definition
Returns the relative URL path of the page based on the
urlattribute.
Teimpléid FlatpageLink to this heading
De réir réamhshocraithe, taispeántar leathanaigh cothroma tríd an teimpléad:file: flatpages/default.html, ach is féidir leat é sin a shárú le haghaidh leathanaigh réidh áirithe: sa riarachán, tá réimse réimse chun ainm teimpléad a shonrú i dtacar réimse réimse teideal “Advanced options” (cliceáil é). Má tá leathanach comhréidh á chruthú agat trí API Python is féidir leat ainm an teimpléid a shocrú mar an réimse template_name ar an réad flatpage.
Tá freagracht ort an teimpléad:file: flatpages/default.html a chruthú; i d'eolaire teimpléad, cruthaigh eolaire a:file: flatpages ina bhfuil comhad:file: default.html.
Cuirtear athróg comhthéacs amháin ar theimpléid flatpage, flatpage`, arb é an réad flatpage.
Seo sampla: comhad: teimpléad flatpages/default.html:
<!DOCTYPE html>
<html lang="en">
<head>
<title>{{ flatpage.title }}</title>
</head>
<body>
{{ flatpage.content }}
</body>
</html>
<automatic-html-escaping>Ós rud é go bhfuil HTML amh á iontráil agat cheana féin sa leathanach riaracháin le haghaidh leathanach cothrom, marcáiltear flatpage.title agus flatpage.content` araon mar not ag iarraidh:ref: `uathoibríoch HTML éalú `sa teimpléad.
Ag fáil liosta de:class: ~django.contrib.flatpages.models.flatpage rudaí i do theimpléidLink to this heading
<hooking-into-current-site-from-views>Soláthraíonn an aip flatpages clib teimpléad a ligeann duit athrá a dhéanamh thar na leathanaigh cothroma go léir atá ar fáil ar:ref: `láithreán reatha `.
Cosúil le gach clib teimpléad saincheaptha, beidh ort: ref: a leabharlann clibeanna saincheaptha a luchtú sula bhfé <loading-custom-template-libraries>adfaidh tú é a úsáid. Tar éis duit an leabharlann a luchtú, is féidir leat gach leathanach cothrom reatha a aisghabháil tríd an gclibe:ttag: `get_flatpages:
{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
{% for page in flatpages %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>
Ag taispeáint leathanaigh árasán clárúcháin_riachtanaLink to this heading
De réir réamhshocraithe, ní thaispeánfaidh an clib teimpléad:ttag: get_flatpages ach leathanaigh chomhpháirteanna atá marcáilte registration_required = False. Más mian leat leathanaigh árasaithe atá cosanta ó chlárú a thaispeáint, ní mór duit úsáideoir fíordheimhnithe a shonrú ag baint úsáide as clásal for`.
Mar shampla:
{% get_flatpages for someuser as about_pages %}
Má sholáthraíonn tú úsáideoir gan ainm, iompróidh :ttag: get_flatpages mar an gcéanna is dá mbeadh úsáideoir curtha ar fáil agat - ie, ní thaispeánfaidh sé ach leathanaigh árasán poiblí duit.
Leathanaigh réidh a theorannú de réir URL bonnLink to this heading
Is féidir argóint roghnach, starts_with, a chur i bhfeidhm chun na leathanaigh a chuirtear ar ais a theorannú dóibh siúd a thosaíonn le URL bonn áirithe. Féadfar an argóint seo a rith mar shreang, nó mar athróg le réiteach ón gcomhthéacs.
Mar shampla:
{% get_flatpages '/about/' as about_pages %}
{% get_flatpages about_prefix as about_pages %}
{% get_flatpages '/about/' for someuser as about_pages %}
Comhtháthú le:mod: django.contrib.sitemapsLink to this heading
- class FlatPageSitemapLink to this definition
<django.contrib.sites>Breathnaíonn an rang:class: SiteMaps.flatPageSitemap <django.contrib.flatpages.sitemaps.FlatPageSitemap>`ar gach ceann atá le feiceáil go poibl:mod: `~django.contrib.flatpages atá sainmhínithe don reath:setting: SITE_ID (féach an doiciméadú: mod: sites) agus cruthaíonn sé iontráil sa léarscáil. Ní áirítear ar na hiontrálacha seo ach an tréith: attr: ~django.contrib.sitemaps.sitemap.location -- not:attr: ~django.contrib.sitemaps.sitemap.lastmod, :attr: ~django.contrib.sitemaps.sitemap.changeFreq nó:attr: ~django.contrib.sitemaps.sitemap.changeFreq .contrib.sitemaps.sitemap.priority`.
SamplaLink to this heading
Seo sampla de URLConf ag baint úsáid:class: FlatPageSitemap:
from django.contrib.flatpages.sitemaps import FlatPageSitemap
from django.contrib.sitemaps.views import sitemap
from django.urls import path
urlpatterns = [
# ...
# the sitemap
path(
"sitemap.xml",
sitemap,
{"sitemaps": {"flatpages": FlatPageSitemap}},
name="django.contrib.sitemaps.views.sitemap",
),
]