混沌中的独白(前言)

本人是个编程菜鸟,但是比较享受创造的快感(虽然这么说又尬又怪),虽然接触到过很多种语言,却只钟情于Python,实在是因为它简单的语法逻辑以及强大的第三方支持。Python真的非常适合用来制作小玩具,而本次我们不在满足于小玩具的制作,我们希望制作一个可以拥有完善功能的网络社区,恰好有很多基于python的网络框架,我们这次就用最为便捷的Django吧。

这里用了网络社区而非论坛一词,是因为我们希望这个平台中用户的交互更加丰富。在这个娱乐平台百花齐放的今天,每一个平台都各具特色,带着自己别具一格的文化风格,吸引着千万向往乐趣,向往交流,向往归宿的年轻人。不得不说,现在的网络社区比起现实中的社区更加活跃,每个用户在自己社区中的主页比他们上千元租的单身公寓更有温度。

你可能创造过属于自己的博客,但现在想不想试一试创造一个属于自己的网络社区呢?本系列教程面向学习Python新手甚至是没有学习过编程的小白,在各个环节会尽可能讲的细一些,当然如果你是小白的话,一定会对其中的很多概念,操作存在疑问,欢迎你们在评论区问我,我也会在教程中把我参考过的书记,文章,教程等的链接给出,当然更希望大家可以拓展更多的教程外内容。如果大家对本教程有什么意见或建议欢迎指出,我会根据建议对教程进行修改和补充。

一切的开始

编程语言:Python3.6.5,下载地址: https://www.python.org/downloads/

现在Python已经不用去手动添加环境变量了,点开安装程序就全自动安装了,真的是太方便了。安装结束后win+R输入cmd按Enter,打开CMD,输入python会提示python版本,这就表明你安装成功了。

编辑器:你的程序得有一个地方写的嘛,我是使用了ATOM文本编辑器来写程序的,但是这个东西安装配置太麻烦,强烈不推荐新手使用,果然还是官方 的pycharm比较好用哦。下载网址: http://www.jetbrains.com/pycharm/

更细致的安装教程: https://blog.csdn.net/ling_mochen/article/details/79314118

Django框架:这里我们使用python自带的下载管理工具pip下载并安装Django,这个超好用的,你只需要在CMD中输入 pip install Django, pip就会自动为你安装适用于你的Python版本的Django。当然,你也可以在GitHub上下载Django的压缩包,解压并和Python安装目录放在同一个根目录,然后在CMD中输入 Python setup.py install 就可以进行安装了。

这里我将Django中文文档分享给大家,里面对于安装介绍的更详细,而且会对Django中的很多模块,功能,类都有详细的介绍,我们使用Django框架进行开发,一定少不了对其文档的阅读。文档地址: https://docs.djangoproject.com/zh-hans/2.1/

PS:讲道理这种网站的架设都会放在Linux服务器上的,所以可以直接放在Linux环境下开发,不过我们作为普通个人开发者就不搞那么麻烦了,我们直接在Windows下进行开发,反正到时候也能移过去。

创建你的第一个Django项目

安装Django后输入: py -m django --version 来查看你的Django是否成功安装,如果成功安装你会看到它的版本提示信息。

这时你就可以开始创建你的第一个Django项目了,打开命令行, cd 到一个你想放置你代码的目录,然后运行以下命令:

django-admin startproject projectname

projectname是你的项目名字,你可以随便给项目起一个好听的名字。我的项目叫CHDBBS,CHD是我母校的名字,其他学校都是XXU这种格式,我的母校还是挺有特点的。

输入完命令,你的目录中应该就有了名为projectname的文件夹了,这是Django为你自动创建的工程必要文件,来看看这里面都有什么吧!

CHDBBS/
    manage.py
    CHDBBS/
        __init__.py
        settings.py
        urls.py
        wsgi.py
  • manage.py 是Django工程管理工具,很强的,以后大有用处
  • settings.py 是工程全局设置的一个文件,你可以在里面完成项目的一些全局设置,比如注册APP(Django项目下可以建立多个应用也就是这里说的app),设置站点语言,时区,配置连接数据库,注册第三方工具等。
  • urls.py 是你的工程中的路由配置声明,就是连接你访问的URL和你的后端处理逻辑的地方,它将URL和逻辑处理函数绑定,你可以把它看做一个向导,他将每个班级的牌子贴在教室门口,然后将挂着班级名的小朋友领进教室。
  • wsgi.py 作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。这个在项目开发完成等待部署时会用到,先不细说,阅读 Django文档的 如何使用 WSGI 进行部署 了解更多细节。

这些文件的冲击力还是有点小,我们能否直接在浏览器中看到可视化项目呢?

那是当然,在CMD中 cd 到该项目目录(当然你现在应该就在这个目录下吧),输入 python manage.py runserver ,你会看到:

Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
七月 18, 2019 - 15:17:53
Django version 2.1, using settings 'CHDBBS.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

强大的 manage.py 已经让你的项目在你本地的8000端口运行起来了!

打开你的浏览器访问 http://127.0.0.1:8000 Surprise! 火箭升空了哦!这是Django对你开启项目的庆祝。

我也送你一首Rocket为你庆祝吧! Rocket-红花会

创建第一个APP

现在你已经开启了自己的第一个项目,我们既然要做网络社区而非简单的论坛,我们肯定希望我们的社区有丰富的交互内容,不如我们把这些内容按大功能模块划分成几个小的应用(APP),然后逐一实现。

在项目目录下输入: py manage.py startapp appname

这里的appname就是你的应用名,我们就先把核心论坛模块实现吧,这里我的appname是Article。

这样又会生成一个新的目录了:

Article/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
  • admin.py 是管理站点设置。Django自带一个管理站点,开发者在上面进行裁剪定制就可以开发出自己的后台管理页面,真的是太棒了!
  • apps.py 是本APP的注册信息。
  • migration 是迁移操作信息,这是Django特有的ORM中的一环,将模型类数据转换成sql语言,实现与数据库的通信。
  • models.py 就是模型类了,这个在系统设计时很重要哦!以后会单章详细说明。
  • tests.py 测试脚本放这边。
  • views.py 这里主要写后台处理逻辑。

好了,到这里我们先停一下。我们可以稍微了解下Django的工作流程。

我们可以看到在B/S模式(浏览器/服务器模式)中,用户通过浏览器对控件按钮进行点击,点击后由浏览器发送请求,请求经过层层封装后通过路由器几经辗转到达后台服务器,服务器对该请求进行解析,处理完成后将处理结果封装传回给用户。

而Django则负责了服务器对请求的解析过程,Django是一个基于Python语言的开源Web应用框架,采用类似MVC的MTV模式,由模型类model,视图模板类template,后台控制渲染类views,部分中间件,及自带的站点管理admin等组成。同时,是一个基于请求的CMS(内容管理系统)框架。

Django模型类Model处理与数据模型相关的所有内容,负责与数据库的交互,支持目前绝大多数数据库如mysql,redis,SQLserver等,Django自带的迁移命令可以直接将模型类转化为数据库表单,方便快捷。视图层View处理业务逻辑,并将处理后的数据返回一个规定渲染的模板。模板类Template存放所有web前端页面,在请求经过view视图处理后进行渲染,template中的模板可以使用简单的Python语言对页面与数据进行处理。在调试时,可以使用框架自带的manage.py的runserver命令启动服务器,并实时调试。Django可以部署运行在Apache,Nginx,WSGI等服务器上。

多人博客(多用户,每个用户可以有自己的个人站点,编写自己的博客) 登录注册(登录有图片验证码,注册可以上传用户自定义头像) 登录注册用form组件进行校验和渲染页面,Ajax提交请求 每个用户都有个人站点(可以根据时间、分类、标签来过滤文章) 每个用户拥有后台管理(可以对文章、标签、分类进行增、删、改、查,新增文章使用Mark 用户注册,在用户注册页面通过填写账号、密码、姓名、手机、邮箱、身份证等信息完成用户注册,如图4-5所示。在个人 心页面通过填写账号、密码、姓名、性别、手机、邮箱、身份证、图片等信息进行个人信息更新操作,还可以根据需要对我的发布进行详细操作;用户管理,在用户管理页面 可以查看索引、账号、姓名、性别、手机、邮箱、身份证、图片等信息,并可根据需要进行详情,修改或删除等操作,如图4-9所示。个人信息,在个人信息页面通过填写账号、姓名、性别、手机、邮箱、身份证、图片等信息内容进行个人信息修改操作,如图4-14所示。 Pychram社区版+ python 3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+ Django +nodejs。 django + python + Vue 等等组成,B/S模式 +pychram管理等等。1.运行环境:最好是 python 3.7.7,我们在这个版本上开发的。4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;2.pycharm环境:pycharm都可以。6.Navcat11:这个版本不限10/11/14/15都可以。 一个 论坛 github下载地址:https://github.com/likunhong01/ForumSystem 能点个星星最好了 卡的话csdn下载:要积分不能怪我自动设置积分的 一个 论坛 系统,一个 Django 论坛 项目 使用:pycharm打开项目后,选择好运行环境,然后在命令行创建数据库(下面两条语句),然后运行就行了 python manage.py makem... 该项目含有源码、文档、程序数据库、配套开发软件、软件安装 教程 项目运行环境配置:Pychram社区版py项目技术: django + python + Vue 等等组成,B/S模式 +pychram管理等等。环境需要1.运行环境:最好是 python 3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。推荐pycharm社区版;3.mysql环境:建议是用5.7版本均可。 数据库设计的时候要注意一定,用户表是直接继承auth模块的,所以需要以下的操作 #在models文件 from django .contrib.auth.models import AbstractUser class UserInfo(AbstractUser): #然后再setitings 配置 #AUTH_USER_MODEL = "ap... pylogs和 django -forum均是基于 django 的WEB应用,其 pylogs是国人开发的博客, django -forum是外国人开发的 论坛 pylogs是一个独立的 django project,而 django -forum是一个 django app,可以方便地整合进其它 django 项目 1、首先安装 django 的SVN trunk版。我一开始使用ubun 8.04 server源 的djan... 环境配置: Pychram社区版+ python 3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+ Django +nodejs。项目技术: django + python + Vue 等等组成,B/S模式 +pychram管理等等。环境需要 1.运行环境:最好是 python 3.7.7,我们在这个版本上开发的。其他版本理论上也可以。 2.pycharm环境:pycharm都可以。推荐pycharm社区版; 3.mysql环境:建议是用5.7版本均可 先开启服务,之后执行命令登陆服务器:mysql -u root -p CREATE DATABASE django _ bbs ; CREATE USER work IDENTIFIED BY ‘ django mooc’; django mooc是密码 GRANT ALL ON django _ bbs .* TO ‘work’@’%’ WITH.. ./manage.py migrate django _forum_app 最后,将其添加到urls.py : url(r'^forum/', include(' django _forum_app.urls')), 您可以改用某些选项来更改 论坛 的默认行为: FORUM_SUBJ