Tools
首页
画图
音乐
采集
记事
博客
实验室
登录
lypeng
146
文章
11
分类
46
记事
分类
生活-[23]
Linux-[24]
前端-[9]
数据库-[16]
PHP-[31]
git-[7]
其他-[6]
python-[20]
算法-[4]
React-Native-[4]
中草药-[2]
广告位1
广告位2
首页
/ python
返回列表
django(四)参考polls做两个页面以及部署与问题整理
阅读:744
发布:2018-08-30
作者:lypeng
查看演示
参考polls做两个页面以及部署测试一下 django-blogs [TOC] # 一、参考polls快速搭建blog ## 1. 新增blogs并添加路由 `python manage.py startapp blogs` 修改mysite/urls.py新增 `path('blogs/', include('blogs.urls')),` blogs/urls.py ``` #这里我们只做两个页面,首页与详情页 path('', views.IndexView.as_view(), name='index'), path('
/', views.DetailView.as_view(), name='detail') ``` ## 2. 数据库 models.py ``` from django.db import models class Articles(models.Model): //不需要ID,会自动生成,并设置为主键 title = models.CharField(max_length=200) # content = models.CharField(max_length=200) #先用char之后改 content = models.TextField() # 更新为TextField pub_date = models.DateTimeField(verbose_name='date published') def __str__(self): return self.title ``` ``` python manage.py makemigrations blogs //生成0001文件 python manage.py sqlmigrate blogs 0001 //查看0001文件内容,即具体SQL语句 python manage.py migrate //导入0001到数据库 ``` 打开SQLiteStudio即可看到,多了一张blogs_article表  ## 3. 进后台给表里面加点数据 blogs/admin.py注册一下Articles,先不做别的设置 ``` from django.contrib import admin from .models import Articles admin.site.register(Articles) ``` 登录`http://127.0.0.1:9005/admin`,添加数据  ## 3. 回到前端views.py 这里我们只放两个页面,即首页与详情页 ``` from django.views import generic from .models import Articles class IndexView(generic.ListView): template_name = 'index.html' context_object_name = 'article_list' def get_queryset(self): return Articles.objects.order_by('-pub_date')[:5] class DetailView(generic.DetailView): model = Articles template_name = 'detail.html' ``` ## 4. 路由 blogs/urls.py ``` from django.urls import path from . import views app_name = 'blogs' urlpatterns = [ path('', views.IndexView.as_view(), name='index'), path('
/', views.DetailView.as_view(), name='detail'), ] ``` ## 5. 模板templates 在blogs下新建templates文件夹,里面新建index.html与detail.html index.html ``` {% load static %}
My blogs
Blogs list
{% for article in article_list%}
{{ article.title }}
{{ article.pub_date }}
{% endfor %}
``` detail.html ``` {% load static %}
{{ articles.title }}
{{ articles.title }}
{{ articles.pub_date }}
{{ articles.content }}
返回
``` ## 6. 访问测试   # 二、问题与改进 ## 1. 字段类型 ``` 好多字段类型 https://www.cnblogs.com/sun1994/p/8566988.html 看这里吧,不整理了! 常用的大致如下: AutoField(auto_created=True, primary_key=True) // id主键,自动创建 IntegerField //int -2147483648 ~ 2147483647 PositiveIntegerField //正整数 0~2147483647 CharField(max_length=200) //char TextField //text DecimalField(max_digits=10,decimal_places=4) //123456.1234 DateTimeField(verbose_name='date published') //datetime ``` 修改blogs的内容字段为text,重新执行生成migrations/0002,然后导入到数据库 ## 2. 首页的分页怎么设置 view.py a.增加`paginate_by = 2 #每页两条数据` b.model、queryset、get_queryset()至少要定义一个。 index.html新增 ``` {% if is_paginated %}
共{{ page_obj.paginator.num_pages }}页
{% if page_obj.has_previous %}
上一页
{% endif %}
{{ page_obj.number }}
{% if page_obj.has_next %}
下一页
{% endif %}
{% endif %} ``` ## 3. 模板语言 参考:`http://www.liujiangblog.com/course/django/145` ## 4. 修改日期显示格式 `{{ article.pub_date|date:"Y-m-d H:i:s" }}` 各种过滤器 参见:`https://www.cnblogs.com/liaocheng/p/5417886.html` ## 5. models的更多操作方法,queryset API 参见: ``` http://www.liujiangblog.com/course/django/130 https://code.ziqiangxuetang.com/django/django-queryset-api.html ``` ## 6. 直接访问根目录 /,怎么定位到blogs/ 修改urls `path('', include('blogs.urls')),` ,即默认访问blogs里面的内容 ## 7. 发布上线,怎么与80端口的php网站共存 ``` http://python-django.dpshop.net:80 -> 127.0.0.1:9005 -> /home/wwwroot/django-blogs # 和之前的Python-web一样,nohup一直运行,然后proxy_pass转发 server { listen 80; server_name python-django.dpshop.net ; root /home/wwwroot/pyton-django; location / { proxy_pass http://127.0.0.1:9005; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` ----------- ## 8. 部署后样式文件都404 执行:`python manage.py collectstatic` 收集整理下static文件 包括 1.拷贝admin的静态文件 2.拷贝blogs,polls的静态文件 ## 9.怎么上传图片, 发邮件 验证码 session怎么用... 等等这些,更多内容,以后需要了,再去学习了解~~~ 整个源码,放到git了,地址:https://github.com/lypeng29/python-django?_blank 后台地址:http://python-django.dpshop.net/admin?_blank 附后台账号: admin 123456,谁想体验,可以进去操作~
------本文结束
感谢阅读------
上一篇:
django体验(三)跟着文档走 part6+part7
下一篇:
pygame 贪吃蛇