django-forum
Python
Python, HTML, CSS
共26个文件
py: 13
html: 5
png: 4
gitignore: 1
md: 1
css: 1
txt: 1
开发环境: 基于ubuntu 18.04系统开发. python环境: 基于python3.6.6 版本开发. django环境: 基于django1.11.4版本开发
django-forum site
目录
描述
django入门第一篇
创建项目
注意!!!
项目结构
django应用
应用程序(boards)目录结构
boards文件说明
修改项目配置
配置数据库mysql
django入门基础
视图处理流程
路由映射
运行报错调试
正常运行效果
django入门第二篇
系统设计
模型设计
字段详解
迁移模型
使用Models-API
模型操作和方法
视图函数
模板引擎设置
Description
开发环境:
基于ubuntu 18.04系统开发.
python环境:
基于python3.6.6 版本开发.
django环境:
基于django1.11.4版本开发
django入门第一篇
创建项目
$ django-admin startproject forum
创建完成后,生成以下项目结构:
forum/ 项目根目录
├── forum # django项目文件夹
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
注意!!!
注意: 虚拟环境放在项目文件夹下也可以,我这里的虚拟环境是存放在其他路径下
项目结构
项目结构说明:
manage.py: django命令行工具,运行项目相关的管理命令
__init.py: 告诉python这个文件是一个python包
settings.py: 包含了所有的项目配置.
urls.py: 负责映射项目中的路由和路径.
wsgi.py: 用于部署的简单网关接口.
执行测试: 注意,因为我没有用sqllite3库,可能会报错,后续使用mysql8.0来配置
$ python manage.py runserver
使用快捷键:ctrl+c键停止运行.
django应用
app: 可以做某件事情的web应用程序.一个web应用程序由一组models(数据库表),views(视图),templates(模板),tests(测试)组成.
project: 是配置和应用程序的集合,一个项目可以由多个应用程序或一个应用程序组成.
在项目文件夹(forum)下创建一个应用程序
$ django-admin startapp boards
应用程序(boards)目录结构
forum/ # 项目根目录
├── boards # 应用程序(app)
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── forum
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ └── settings.cpython-36.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
boards文件说明
migrations: 该文件夹,django存储一些文件跟踪在models.py文件中创建的变更,用来保持数据库和models.py的同步.
admin.py: 内置应用:django admin的配置文件.
apps.py: 应用程序(boards)本身的配置文件.
models.py: 定义应用程序(boards)数据实例,models会由django自动转换为数据库表.
tests.py: 写应用程序(boards)的单元测试.
views.py: 处理web应用程序请求和响应周期的文件.
修改项目配置
启用应用程序(boards)
项目配置文件链接:项目配置文件
$ vim forum/forum/settings.py
...
INSTALLED_APPS = [
.....
'boards', # 空一行来区别内置app和自定义app
]
...
配置数据库mysql
使用数据库容器:(mysql8.0)
mysql镜像地址
$ docker run -itd --name mysql8 \ -v /etc/localtime:/etc/localtime:ro \ -v $PWD/logs:/logs \ -v $PWD/data:/var/lib/mysql \ -p 3310:3306 \ -e MYSQL_ROOT_PASSWORD=123.cn \ liyuanjie/mysql8:v1
数据库接口
因为python连接mysql,用的模块为pymysql模块,所以需要做以下配置:
添加python连接数据库的内容:源文件路径
$ vim forum/forum/__init__.py
import pymysql
pymysql.install_as_MySQLdb()
配置连接数据库
项目配置文件中的:数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #数据库引擎
'NAME': 'boards', # 数据库名称
'USER': 'root', # 数据库用户名
'PASSWORD':'123.cn', # 密码
'HOST': '172.20.10.2', # 主机
'PORT': '3310', # 数据库端口
'CHARSET':'utf8mb4', #字符集编码
}
}
注意: 需要在mysql容器中创建该数据库.
在settings.py文件中,需要修改时区为:
TIME_ZONE = 'Asia/Shanghai'
django入门基础
编写视图:
视图文件路径
$ vim forum/boards/views.py
from django.http import HttpResponse
def first(request):
return HttpResponse('This is the first page I learned about django.')
视图处理流程
视图是接收 httprequest 对象并返回一个 httpresponse 对象的Python函数。接收 request 作为参数并返回 response 作为结果
路由映射
在urls.py文件中告诉django需要调用views.py文件.
在应用程序(boards)目录下创建urls.py文件.
应用程序(boards)路由映射
源文件路径:boards-url
forum/boards/urls.py
from django.conf.urls import url
from . import views
app_name = 'boards'
urlpatterns = [
url(r'^$',views.first,name='first'),
]
项目的路由映射
项目的url配置文件:
forum-url
$ vim forum/forum/urls.py
......
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^boards/',include('boards.urls')),
url(r'^admin/', admin.site.urls),
]
Django使用正则表达式来匹配请求的URL. 对于first视图, 我想匹配的URL是:http://127.0.0.1:2000/boards/,那么我的URL正则表达式是: url(r'^$',views.first,name='first')
按照规范,每个应用程序(boards)应该有自己单独的urls.py文件.这样方便管理.
运行报错
运行命令:
$ python manage.py runserver 127.0.0.1:2000
报以下错误:
RuntimeError: cryptography is required for sha256_password or caching_sha2_password
更改mysql8.0的root用户的身份认证方式:
进入数据库: $ docker exec -it mysql8 /bin/bash
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123.cn';
mysql> flush privileges;
运行该命令:$ python manage.py migrate
完美解决问题.
正常运行
再次运行命令:
$ python manage.py runserver 127.0.0.1:2000
浏览器访问网址: http://127.0.0.1:2000/boards/
django入门第二篇
系统设计
用例图
项目是一个论坛系统,维护几个论坛板块,每个版块像一个分类一样。在指定的版块里面,用户可以通过创建新主题(Topic)开始讨论,其他用户可以参与讨论回复.
只有管理员才可以创建板块.
类图
思考项目所需的实体类有哪些? 这些实体是要创建的模型.
需要实现模型:Board(版块),Topic(主题),Post(帖子),User(用户)
需要考虑模型之间如何相互关联.
Board模型,我们将从两个字段开始:name 和 description。 name字
段必须是唯一的,为了避免有重复的名称。description 用于说明这个版块是
做什么用的。
Topic模型包括四个字段:subject 表示主题内容,last_update 用来定义话
题的排序,starter 用来识别谁发起的话题,board 用于指定它属于哪个版
块。
Post模型有一个 message 字段,用于存储回复的内容,created_at 在排序
时候用(最先发表的帖子排最前面),updated_at 告诉用户是否更新了内
容,同时,还需要有对应的 User 模型的引用,Post 由谁创建的和谁更新
的。
User模型。在类图中,我只提到了字段 username,password,
email,is_superuser 标志,因为这几乎是我们现在要使用的所有东⻄。
需要注意的是,我们不需要�
没有合适的资源?快使用搜索试试~ 我知道了~
Ubuntu 18.04下基于Python3.6和Django1.11的论坛源码
共28个文件
py:15个
html:5个
png:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 45 浏览量
2024-03-25
20:47:43
上传
评论
收藏 219KB ZIP 举报
温馨提示
项目概述:基于Ubuntu 18.04的Python3.6与Django1.11论坛源码 本项目是一款在Ubuntu 18.04操作系统环境下开发的论坛应用源码,主要采用Python 3.6.6编程语言,搭配Django 1.11.4框架进行构建。源码包含13个Python文件,5个HTML模板文件,4张PNG图片资源,以及其他配置和样式文件。 技术栈: - Python:编写逻辑与后端功能的核心语言 - HTML:构建前端页面的标记语言 - CSS:美化界面与提升用户体验的样式表 - Django:一个高级的Python Web框架,用于快速开发安全且易于维护的网站 文件组成: - Python文件 (.py):13个,涵盖了论坛的业务逻辑及Django应用配置 - HTML文件 (.html):5个,定义了论坛的前端页面结构 - PNG图片 (.png):4张,用于论坛界面设计中的视觉元素 - 其他文件:包括.gitignore用于版本控制忽略配置,README.md项目说明文件,CSS样式表(.css),以及文本文件(.txt) 该源码适用于希望在Ubuntu 18.04环境下使用Python3.6和Django1.11进行项目开发的开发者。
资源推荐
资源详情
资源评论
收起资源包目录
upload.zip (28个子文件)
forum
forum
__init__.py 43B
wsgi.py 388B
urls.py 911B
settings.py 4KB
resultgraph-images
one.png 7KB
four.png 15KB
two.png 5KB
three.png 7KB
templates
boards
html
first4.html 429B
first1.html 408B
first2.html 897B
topics.html 476B
first3.html 997B
manage.py 803B
modelsapi.py 2KB
boards
__init__.py 0B
tests.py 4KB
admin.py 117B
migrations
__init__.py 0B
0001_initial.py 2KB
apps.py 87B
models.py 1KB
urls.py 289B
views.py 2KB
static
boards
css
bootstrap.min.css 141KB
requirement.txt 213B
.gitignore 1KB
readme.txt 17KB
共 28 条
- 1
资源评论
沐知全栈开发
- 粉丝: 4745
- 资源: 3373
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功