Flask에서 작동하는 아주 단순한 사이트가 있는데이 사이트는 모두 sqlite db로 구동됩니다. 각 페이지는 경로, 제목, 내용과 같은 항목을 포함하는 페이지 테이블의 행으로 저장됩니다.Flask의 동적 탐색
구조는 페이지에 상위가있을 수있는 계층 구조입니다. 예를 들어 'about'은 페이지 일 수 있지만 'about/something'과 'about/cakes'가있을 수도 있습니다. 그래서 '/'(/는 루트 페이지)의 부모를 가진 모든 링크에 대한 링크가 포함 된 탐색 모음을 만들려고합니다. 또한 열려있는 페이지와 해당 페이지의 모든 부모를 표시하는 것이 좋습니다.
예를 들어 우리가 'about/cakes/muffins'에있는 경우 항상 표시되는 링크 외에도 'about/cakes'에 대한 링크가 다음과 같이 표시됩니다.
- About/
- Cakes/
- Muffins
- Genoise
- Pies/
- Stuff/
- Contact
- Legal
- Etc.[/]
자녀가있는 페이지에는 슬래시를 사용하고 그렇지 않은 페이지에는 슬래시를 사용하십시오.
코드 :
@app.route('/')
def index():
page = query_db('select * from page where path = "/"', one=True)
return render_template('page.html', page=page, bread=[''])
@app.route('/<path>')
def page(path=None):
page = query_db('select * from page where path = "%s"' % path, one=True)
bread = Bread(path)
return render_template('page.html', page=page, crumbs=bread.links)
내가 거기에 두 가지 기능을 가진 드라이을 위반 한 것 같은 나는 이미 생각합니다. 그러나 네비게이션을 수행하면 오류 페이지와 같은 항목에 대한 탐색을 원하므로 추가로 위반하게됩니다.
그러나 나는 이것을 수행하기위한 특히 Flasky 방법을 찾을 수 없습니다. 어떤 아이디어?
죄송합니다. 귀하가 여기서 무엇을 묻고 있는지 정확히 모르겠습니다. 정확히 어떻게해야합니까? '페이지'뷰에서 SQL 쿼리를 작성하는 방식은 안전하지 않으며 주입 공격에 개방적입니다. 사용자 입력을 안전하게 처리하는 방법을 보려면 [여기] (http://stackoverflow.com/a/775399/1949092)의 몇 가지 답변을 살펴보십시오. – DazWorrall
예, 모든 임시 코드입니다. SQL 주입에 대해 알고 있습니다. Flask에서 동적 트리 탐색을 수행하는 방법을 묻습니다. mppt를 사용하여 django에서이 작업을 수행했지만 Flask가 어디에서도 동등하지는 않습니다. –
비슷한 질문이 있지만 내비게이션을 flask.session 변수에 액세스해야합니다. https://stackoverflow.com/questions/45948609/accessing-flask-session-variables-from-flask-navigation-for-dynamic-navigation-m –