DragonSenseiGuy/dragons-website
My Blog, forked from Simon Willisons blog
dragons-website
The code that runs my weblog
Local Development
-
Create and activate a virtual environment:
python3 -m venv .venv source .venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
-
Set up the database:
For local development, it's easiest to use a SQLite database. You can configure this by setting theDATABASE_URLenvironment variable. It's recommended to add this to a.envfile in the root of your project:DATABASE_URL=sqlite:///db.sqlite3You will also need to install
python-dotenvto load this file:pip install python-dotenv
-
Run database migrations:
python3 manage.py migrate
-
Create a superuser:
To access the Django admin, you'll need a superuser account:python3 manage.py createsuperuser
-
Start the development server:
python3 manage.py runserver
The site will be available at http://127.0.0.1:8000/ and the admin interface at http://127.0.0.1:8000/admin.
Search Engine
This blog includes a built-in search engine. Here's how it works:
- The search functionality is implemented in the
searchfunction inblog/search.py. - It uses a combination of full-text search and tag-based filtering.
- The search index is built and updated automatically when new content is added to the blog.
- Users can search for content using keywords, which are matched against the full text of blog entries and blogmarks.
- The search results are ranked based on relevance and can be further filtered by tags.
- The search interface is integrated into the blog's user interface, allowing for a seamless user experience.
For more details on the implementation, refer to the search function in blog/search.py.