2019-10-11 |

13. Github管理项目

项目介绍到这里,基本就结束了,可对于真正的业务开发,还只是刚开始。

不管是对于教程代码免费分享的需要,还是项目开发过程中的版本管理,Github都是我们首选的开源代码仓库,如果你没有私有仓库,并且不用保护代码,那么将项目上传到Github上是最佳的选择。

关于如何使用Git软件请自行学习,或许以后有空我也会写点教程。如何在Pycharm中配合Github,则在站点的博客中有一篇《在Pycharm中使用GitHub》,可供大家参考。

一、 创建requirements.txt文件

requirements.txt文件是一个项目的依赖文件,可以通过下面的方式自动生成:

进入虚拟环境,切换到项目根目录下,使用pip工具的freeze参数。

(venv) D:\work\2019\for_test\mysite>pip freeze > ./requirements.txt

打开requirements.txt文件,其内容如下:

Django==2.2
django-ranged-response==0.2.0
django-simple-captcha==0.5.11
Pillow==6.0.0
pytz==2018.9
six==1.12.0
sqlparse==0.3.0

他人如果拷贝了我们的代码,要安装第三方库依赖的话,只需要:

pip install -r requirements.txt

就可以一次性安装好所有的库了。

二、创建.gitignore文件

在项目代码中,有一些文件是不能上传的,比如密码文件、数据库文件、核心配置文件等等,还有一些是不用上传的,比如临时文件。为了让git自动忽略这些文件,我们需要创建一个忽略名单。

在项目根目录下新建一个.gitignore文件,这里可能需要你在Pycharm下安装ignore插件,如下图所示:

image

我这里是已经安装好了,新安装的话,要在搜索栏里搜索到插件后再安装。

.gitignore文件里写入下面的内容:

.gitignore
venv
.idea
settings.py
db.sqlite3
mysite/__pycache__/

这些文件将不会上传到Github中,也不会进行版本管理。

三、特殊文件处理

对于settings.py文件有个问题,如果没有这个文件是无法运行Django项目的,但是settings中又可能包含很多关键的不可泄露的部分,比如SECRET_KEY:

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'b(&6i_$g2%8vh)ruu$)a9pkw+s-e&qj_e_#=@gnbo^48#gp_8a'

还有数据库的IP/Port、用户名和密码,邮件发送端的用户名和密码,这些都是绝对不能泄露的。

那怎么办呢?简单!复制settings文件,并重命名为settings.example.py文件,放在同一目录里,把敏感信息、密码等修改或删除。使用者看到这个文件名,自然会明白它的作用。

四、添加说明文件和许可文件

通常我们要给Github的仓库添加说明文件和许可文件。

在项目根目录下创建一个README.md文件,这是markdown格式的。在文件里写入项目说明,使用方法,注意事项等等所有你认为需要说明的东西。

## 这是一个用户登录和注册教学项目
## 这是一个可重用的登录和注册APP
## 该项目教程发布在www.liujiangblog.com

## 简单的使用方法:


创建虚拟环境
使用pip安装第三方依赖
修改settings.example.py文件为settings.py
运行migrate命令,创建数据库和数据表
运行python manage.py runserver启动服务器


路由设置:


from django.contrib import admin
from django.urls import path, include
from login import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
    path('login/', views.login),
    path('register/', views.register),
    path('logout/', views.logout),
    path('confirm/', views.user_confirm),
    path('captcha/', include('captcha.urls'))   # 增加这一行
]

对于许可文件LICENSE,如果你暂时不想公开授权,或者不知道用哪种授权,可以暂时不提供。

下面是一个APACHE2.0授权的范例:

   mysite - User login and register system

   Copyright 2019- www.liujiangblog.com

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

五、上传代码

这里我们将项目上传到github中,并取名为login-register。

在上传过程中,确认文件列表的时候,一定要注意查看没有保密文件被上传。

image

等待一会,项目文件上传完毕后,进入Github的仓库页面,如下所示:

image

点击进入详细页面:

image

现在,所有人都可以通过下面的方式,下载和使用本项目的源代码了:

git clone https://github.com/feixuelove1009/login-register

六、使用Github仓库中的源码

如果你不是从教程的开始一步步地实现整个项目,而是直接使用从Github上copy下来的整个源码,那么你可能需要做一些额外的工作,比如:

  • 创建虚拟环境
  • 使用pip安装第三方依赖
  • 修改settings.example.py文件为settings.py
  • 运行migrate命令,创建数据库和数据表
  • 运行python manage.py runserver启动服务器

而在Pycharm中运行服务器的话,可能还需要做一些额外的工作,比如:

  • 配置解释器
  • 配置启动参数

因为你本地Pycharm的配置情况,可能会发生不同的问题,需要根据实际情况实际处理,下面给两张配置图,供大家参考:

image

image

以上内容,都经过实际测试,如果你依然不能顺利启动服务器,请详细检查Pycharm的配置。


0

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论