python Django web框架搭建一个简单博客
程序员文章站
2022-09-21 10:02:56
创建项目django-admin startproject 项目名创建应用python manage.py startapp 应用名在 settings.py 文件 INSTALLED_APPS 里添加app...
创建项目
django-admin startproject 项目名
创建应用
python manage.py startapp 应用名
在 settings.py 文件 INSTALLED_APPS 里添加app
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', #blog_app 'blog.apps.BlogConfig' ]
配置路由
在新建的blog应用里新建urls.py,设置访问路径
urlpatterns = [ path('index',blog.views.get_index_page), path('detail/<int:article_id>',blog.views.get_detail_page) ]
在项目下的urls.py里把碰到 blog/ 的 url 将交由 blog.urls 来处理
urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.urls')) ]
模型定义
models.py 里新建一个类继承models.Model,定义博客文章模型的字段
class Article(models.Model): article_id = models.AutoField(primary_key = True) title = models.TextField() brief_content = models.TextField() content = models.TextField() publish_date = models.DateTimeField(auto_now=True) def __str__(self): return self.title
模型迁移保存到数据库里面
python manage.py makemigrations
迁移文件同步到数据库
python manage.py migrate
Django Admin模块
创建超级用户:python manage.py createsuperuser
把模型注册到admin里面,在admin.py里设置
from .models import Article
admin.site.register(Article)
视图层views.py返回数据,进行模板渲染
def get_index_page(request): page = request.GET.get('page') all_article = Article.objects.all().order_by('article_id') top5_article_list = Article.objects.order_by('-publish_date')[:5] paginator = Paginator(all_article,3) page_num = paginator.page_range
page_sum = paginator.num_pages if page: page = int(page) if page > page_sum: page = page_sum else: page = 1 return render(request,'blog/index.html', { 'article_list':paginator.page(page), 'page_num':page_num, 'curr_page':page, 'page_sum':page_sum, 'top5_article_list':top5_article_list }) def get_detail_page(request,article_id): all_article = Article.objects.all() for index,article in enumerate(all_article): if index == 0: previous_index = 0 next_index = index + 1 elif index == len(all_article) - 1: previous_index = index - 1 next_index = index else: previous_index = index - 1 next_index = index + 1 if article.article_id == article_id: curr_article = article
previous_article = all_article[previous_index] next_article = all_article[next_index] break section_list = curr_article.content.split('\n') return render(request,'blog/detail.html', { 'curr_article':curr_article, 'section_list':section_list, 'previous_article':previous_article, 'next_article':next_article })
模板系统标签
- 变量标签:{{ 变量 }}
- for循环标签:{% for x in list %},{% endfor %}
- if-else分支标签:{% if %},{% else %},{% endif %}
然后再加一点细节
一个简易的博客就完成了,在慕课网里学习的,有兴趣可以看看三小时带你入门Django框架
本文地址:https://blog.csdn.net/u011796949/article/details/108222537
推荐阅读
-
Python实现手写一个类似django的web框架示例
-
用Python手把手教你搭建一个web框架-flask微框架!
-
python Django web框架搭建一个简单博客
-
荐 Python 框架 之 Django 的数据后台管理平台,简单的搭建、以及数据基本操作
-
Python Web开发:Django+BootStrap实现简单的博客项目
-
python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)
-
从零开始搭建Python web框架——Django(二)
-
从零开始搭建Python web框架——Django(四)
-
从零开始搭建Python web框架——Django(三)
-
从零开始搭建Python web框架——Django(一)