python收集

Python+Django搭建个人博客(5)-Django模型

2020-03-28  本文已影响0人  DayBreakL

认识数据库

数据是如何存在数据库中

Django中的数据库

利用admin后台系统管理数据

设计博文模型

博文基础模版

新建分类模型和标签模型

添加两个class,同时补充Post类

class Category(models.Model):
    """分类"""
    name = models.CharField(max_length=100)
    def __str__(self):
            return self.name

class Tag(models.Model):
    """标签"""
    name = models.CharField(max_length=100)
    def __str__(self):
            return self.name

class Post(models.Model):
    title=models.CharField(max_length=80)
    subtitle=models.CharField(max_length=120)
    publish_date=models.DateTimeField()
    content=models.TextField()
    link=models.CharField(max_length=200)
    # 利用ForeignKey()即可关联另外一个模型
    author=models.ForeignKey(User,on_delete=models.CASCADE) 
    category=models.ForeignKey(Category,on_delete=models.CASCADE) 
    # 利用MangToManyField()关联另外一个模型
    tag=models.ManyToManyField(Tag,blank=True)

    def __str__(self):
            return self.title

运行Django的管理命令

admin后台查看

![image](https://img.haomeiwen.com/i12041448/3c7cf803756c4e3d?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

从数据库提取真正的博文信息

设计博客详情页网址

添加博客详情页模版

我们下载的模版中,有一个post.html的文件,就是我们博客详情页的模版,把它用到我们项目中,放在我们app的/templates/blog下.

![image](https://img.haomeiwen.com/i12041448/80c6cf86d6389b21?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![image](https://img.haomeiwen.com/i12041448/c1880a0405574a05?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![image](https://img.haomeiwen.com/i12041448/e98dde80a216caf5?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

更漂亮的正文排版

方式一:在后台的content中直接写html代码,比较麻烦;

方式二:采用Markdown格式编写博文(推荐)

![image](https://img.haomeiwen.com/i12041448/a186b0859874f986?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![image](https://img.haomeiwen.com/i12041448/065707266d6d84c6?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

发现没有对标签进行渲染,如何解决?

在post.html中的`{{post.content}}`修改为`{{post.content|safe}}`

![image](https://img.haomeiwen.com/i12041448/2662420cd0abf804?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    
![image](https://img.haomeiwen.com/i12041448/6951cad5b72d5aec?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**遗留问题,这里貌似不支持代码块的展示,待解决**

调整url

现在的url是127.0.0.1:8000/blog/首页,我们希望127.0.0.1:8000就是首页

如何把网站对外发布

Django部署

(不详细讲,自行google)

  1. 安装uwsgi

  2. 配置uwsgi.ini

    示例:

    image
  3. 安装nginx

  4. 配置nginx

  5. 启动uwsgi uwsgi --ini uwsgi.ini

  6. 启动nginx

服务器使用中常见的几个问题

image
  1. 可能是数据库没有填写我们的hosts
  2. 80端口可能之前已经被打开,关掉80端口即可
  3. ip地址没填对,要公网的ip地址
  4. 连上一段时间没有操作也会自动断掉
  5. 网络连接问题
  6. 安装一个screen应用

作业

image
上一篇 下一篇

猜你喜欢

热点阅读