- ติดตั้ง Flask
- ทดลองใช้ Markdown
- แสดง code ด้วย Markdown
Link
1. ติดตั้ง Flask
Set up a virtual environment
> python -m venv venv > .\venv\Scripts\activate (venv) >
ติดตั้ง Flask
> pip install -U Flask
ลองสร้างตัวอย่างง่ายๆ
# save this as app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, World!"
ทดลองรัน
> flask run --debug

2. ทดลองใช้ Markdown
ติดตั้ง Markdown
> pip install markdown
ใช้งาน Markdown
# save this as app.py
from flask import Flask
import markdown
app = Flask(__name__)
@app.route("/")
def hello():
your_text_string = """
# Jack's Markdown
1. Apple
1. Banana
1. Mango
"""
html = markdown.markdown(your_text_string)
return html

3. แสดง code ด้วย Markdown
ไฟล์ markdown.md
# Jack's Markdown
1. Apple
1. Mango
1. Banana
```python
for n in range(1,5):
print("Hello world!")
```
## Link
- [The Right Way To Render Markdown With Flask](https://artandhacks.se/articles/flask-markdown/)
- <a href="https://phaisarn.com" target="_blank">phaisarn.com</a>
ไฟล์ app.py
# save this as app.py
from flask import Flask
from flask import render_template
import markdown
app = Flask(__name__)
@app.route("/")
def hello():
f = open('markdown.md', 'r')
markdownFile = f.read()
stringOfMarkdown = markdown.markdown(markdownFile, extensions=['markdown.extensions.attr_list','markdown.extensions.codehilite','markdown.extensions.fenced_code'])
html = render_template('index.html', stringOfMarkdown = stringOfMarkdown)
return html
ไฟล์ templates/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/default.min.css" rel="stylesheet">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
<title>Flask-Markdown</title><!-- Required meta tags -->
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"><!-- Bootstrap CSS -->
</head>
<body>
<script>
hljs.initHighlightingOnLoad();
</script> {{stringOfMarkdown|safe}} <!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
</body>
</html>
ใช้ร่วมกับ jQuery , Popper.js, Bootstrap JS
<!DOCTYPE html>
<html lang="en">
<head>
<link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/default.min.css" rel="stylesheet">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
<title>Flask-Markdown</title><!-- Required meta tags -->
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"><!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
</head>
<body>
<script>
hljs.initHighlightingOnLoad();
</script> {{stringOfMarkdown|safe}} <!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.7.0.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.6.0/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz"
crossorigin="anonymous"></script>
</body>
</html>
