混沌中的独白(前言)
本人是个编程菜鸟,但是比较享受创造的快感(虽然这么说又尬又怪),虽然接触到过很多种语言,却只钟情于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