博客项目的环境搭建(1)— Git

本文介绍如何使用Django搭建一个简单的博客项目,包括环境搭建、项目创建、版本控制配置、数据库设置、应用创建及后台管理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个项目就是做一个博客的简单页面,首先是对环境的搭建;

1.创建虚拟环境的基本步骤

(1)创建虚拟环境-virtualenv 

pip install virtualenv 

(2)在D盘下新建目录python-virtualenv 用来存放python虚拟环境 (这个路径一定要记住,不要与其它路径的东西放在一起了,容易出错)。

(3)创建虚拟环境

# virtualenv 环境的名称
virtualenv django-1.11.28-blog

(4)激活虚拟环境

         进入到刚刚创建的虚拟环境路径里的Scripts文件夹中;

cd D:\python-virtualenv\django-1.11.28-blog\Scripts

         接着运行activate,显示如下结果即可;

(django-1.11.28-blog) D:\python-virtualenv\django-1.11.28-blog\Scripts>

(5)在虚拟环境下安装所需要的安装包

pip install django==1.11.28

(6)退出虚拟环境:deactivate

2.项目创建的基本步骤及Git版本控制

(1)PyCharm创建django项目

         可通过以下两种方式去创建项目:

         图形化:new Project->django->选择项目文件夹目录->选择虚拟环境目录

         命令式:命令行输入django-admin startproject django-blog

项目目录:
	---django-blog
		--- __init__.py
		---settings.py
		---urls.py
		---wsgi.py
	---templates
	---manage.py

(2)项目中配置settings.py 

         首先需要在djangoProject/djangoProject目录下创建本地配置文件local_settings.py(如若要对settings.py中的内容进行修改,将其复制到local_settings.py下进行修改);

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

         在settings.py中引入本地的配置(这里可以直接在settings.py中修改,配置后上下线都可使用);

# 引入本地配置
try:
    from .local_settings import *
except:
    pass

(3)版本控制

   下载与安装 Git

    首先需要下载该软件,官网下载如下:https://git-scm.com/download/win

    安装时只需要“傻瓜式”地点击“Next”即可安装成功;

        

   PyCharm中配置 Git

   打开PyCharm后,选中File-->Settings,在Settings中输入Git,点击Git并配置好路径(该路径在刚刚安装Git路径中的bin/git.exe文件;

                

   完成上述操作后,则表示PyCharm已成功配置Git。

   下载安装 Gitee

   在Settings中找到Plugins,在界面中找到"Browser reponsitories..."并点击进入,并在搜索框中输入“gitee”,然后选中Gitee-->Install;

   

   安装成功后,需要点击“Restart”重启PyCharm后即可生效。

   配置码云账户和密码

   先在官网中注册Gitee的账号,若已经注册好的,输入信息并登录配置,下面是基本操作步骤;

(1)在Settings输入gitee,可以查看到上述操作中已成功安装的Gitee插件。第一次配置时要点击“Create API Token”完成用户登录,点击Login后会生成密钥;

  

(2)若要验证账号是否能与服务器正常通信时,可点击“Test”测试;

3.Git命令的基本使用

   先在码云中创建仓库,以便后续命令的使用;

   首先打开PyCharm后,选中VCS-->Import into Version Control -->Share Project on Gitee,选择完后需填写一些项目内容如下;

                                            

   选中分享后,则需要选中要添加的项目文件项(每次提交的时候可以编写提交版本的信息);

                                                      

django-blog                        # 在码云中创建的仓库名 
--git init                         # 初始化本地仓库
--git add .                        # 将当前文件夹下面的所有文件虚拟到仓库中
--git commit -m '初始化博客项目'    # 提交到本地仓库
--git remote add origin https://gitee.com/amyliyanice/django-blog.git   #本地仓库和远程仓库的连接
--git push -u origin master        # 将本地仓库的内容推向远程仓库
==========================================================================================
git pull 远程仓库的地址             # 将线上分支拉到本地
git rm -r --cached .               # 需要将本地的提交缓存刷新一下,重新提交

   这里因为版本的问题,使用图形化方式进行提交并将内容推向远程仓库;

   首先选中VCS-->Commit,选中要提交的目录及文件项,同时可编写相关信息,最后点击“Commit”即可;

                                         

   此时,还需要将本地仓库推送到远程仓库中,选中VCS-->Git-->Push,当Push Success后,进入到gitee服务器中,可进行查看;

         

4.项目应用的创建

(1)使用mysql,修改数据库

         首先安装pymysql,在local_settings.py中配置mysql;

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dblog',
        'USER': 'root',
        'PASSWORD': '112233',
        'HOST': 'localhost',
        'PORT': 3306
    }
}

          这里使用Navicate创建数据库dblog,在主目录下的__init__.py中配置pymysql;

import pymysql

pymysql.install_as_MySQLdb()

(2)创建应用,使用models创建表

         首先创建ar_type 、article 应用:

>>>python manage.py startapp ar_type   # ar_type 类型应用
>>>python manage.py startapp article   # article 文章应用    

         在创建应用后,在settings.py中进行注册;

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'ar_type',     # 添加
    'article',     # 添加
]

         由于每一张表中都有is_delete、create_time和update _time,因此我们直接在项目根目录下创建一个db文件夹存放基类,在db文件夹下创建baseModel.py;

from django.db import models

class BaseModel(models.Model):
    # 模型基类
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    is_delete = models.BooleanField(default=False, verbose_name='删除标记')
    showorder = models.IntegerField(default=0, verbose_name='排列序号')

    class Meta:
        abstract = True

         在每个应用的models中引入基类,使该应用的模型类继承该基类;

# ar_type/models.py:

from django.db import models
from db.baseModel import BaseModel

# Create your models here.
class ArType(BaseModel):
    name = models.CharField(max_length=10,verbose_name='类型名称')

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'ar_type'
        verbose_name_plural = '类型'
# article/models.py:

from django.db import models
from db.baseModel import BaseModel
from ar_type.models import ArType

# Create your models here.
from tinymce.models import HTMLField


class Article(BaseModel):
    name = models.CharField(max_length=200, verbose_name='文章标题')
    post_img = models.ImageField(upload_to='poster', verbose_name='封面图片')  # 图片存放在media/poster目录下
    author = models.CharField(max_length=20, verbose_name='作者名')
    desc = models.TextField(verbose_name='文章简介')
    content = models.TextField(verbose_name='文章内容')
    view_num = models.IntegerField(default=0, verbose_name='浏览人数')
    zan_num = models.IntegerField(default=0,verbose_name='点赞人数')

    type = models.ForeignKey(ArType, verbose_name='文章类型')
    

    class Meta:
        db_table = 'article'
        verbose_name_plural = '文章'

          生成数据库及迁移;

python manage.py makemigrations
python manage.py migrate

 常见错误的处理方法:

 ①创建引用报错:

 报错:TypeError: unsupported operand type(s) for /: 'str' and 'str'

 修改:settings.py中的TEMPLATES配置

'DIRS': [BASE_DIR,'templates'],
修改为:
'DIRS': [os.path.join(BASE_DIR,'templates')],

②数据库生成报错:

报错:Cannot use ImageField because Pillow is not installed

解决:pip install Pillow

5.后台用户和界面处理

   这里先创建用户:python manage.py createsuperuser

   在每个应用的admin.py中注册模板,在后台显示;

# ar_type应用中的admin.py

from django.contrib import admin
from .models import *

# Register your models here.
class ArTypeAdmin(admin.ModelAdmin):
    list_display = ['id','name','showorder','create_time']
    list_per_page = 10
    list_display_links = ['name']
    list_editable = ['showorder']

admin.site.register(ArType,ArTypeAdmin)
# article应用中的admin.py

from django.contrib import admin
from .models import *

class ArticalAdmin(admin.ModelAdmin):
    list_display = ['id','name','author','post_img','desc','content','view_num','zan_num','showorder']
    list_display_links = ['name']
    list_editable = ['view_num','zan_num','showorder']

# Register your models here.
admin.site.register(Article,ArticalAdmin)

   这里还要注意后台上传图片的配置,在settings.py中配置上传图片的路径;

# 指定上传资源的访问路径
MEDIA_URL = '/media/'

# 上传资源的存储路径
MEDIA_ROOT = os.path.join(BASE_DIR,"static/media")

   在主路由中指定访问路由;

from django.conf.urls.static import static
from djangoProject import settings

urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

   之后访问后台,进行数据添加,效果如下:

      

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值