基于PyCharm+Django+MySql搭建简易Web网站
Django框架下载
pycharm 页面快捷键 alt + F12,打开terminal集成终端框
键入
1 | pip install -i https://pypi.douban.com/simple/ django |
完成下载(豆瓣镜像)
用Django搭建网站
terminate继续输入:
1 | django-admin startproject mysite |
生成mysite文件
如果使用PyCharm社区版
先使用cmd指令跳转到你的目标路径下,再键入
1 | django-admin startproject [Demo1219_2][文件名] |
创建完成后用PyCharm打开
启动项目
terminal输入:
1 | python manage.py runserver #运行manage.py,启动项目 |
开始执行main.py,启动项目
如图所示启动成功:
点击蓝色链接 http://127.0.0.1:8000/ 跳转
打开设置(settings)->项目(project)安装解释器
应有上述安装包(最重要的时 Django 与 PyMySql)
点击确定(ok)退出
Django配置MySql数据库
注意要先安装好PyMySql解释器
1.打开mysite同名次级目录下的 init.py 添加
1 | import pymysql |
2.打开同级目录下的 settings.py 文件,将数据库相关配置设置为
pycharm快捷键ctrl+F 查找
1 | DATABASES = { |
如下图所示
这里出现报错,报错信息最后是 ModuleNotFoundError: No module named ‘pymysql’
查询方知不能只添加解释器,我的电脑上安装了Django但是没有PyMySql
遂执行cmd命令
1 | pip install pymysql |
3.执行迁移,将项目中原有的应用的模型同步迁移到数据库
先pycharm快捷键ctrl+C中断当前进程(断开服务器)
终端运行:
1 | python manage.py migrate |
执行出好几条“OK”
Navicat打开找出前边新建的数据库刷新发现建好了表
此时重新启动服务器 terminal
1 | python manage.py runserver |
浏览器输入地址
1 | http://127.0.0.1:8000/admin/login |
得到登录界面
本节目的在这里
但是我好像没有进行这步的配置就已经可以看到这个界面了,配置了个寂寞,可能是Django或者PyMySql更新了导致的,说不准
====2024.12.20
Admin用户创建
Ctrl+C断开服务器,终端输入:
1 | python manage.py createsuperuser |
创建SuperUser,按提示输入用户名(Username)邮箱(EmailAddress合适格式即可)密码(Password)
!!!此处设置(SupremeGuan 1789548110@qq.com 123456) 小写y确定
python manage.py runserver启动服务器
打开网站127.0.0.1:8000/admin/,输入相应用户名和密码
成功登入Django内置后台管理界面!
显示html界面
断开服务器连接,终端输入
1 | python manage.py startapp polls |
运行,文件目录里生成了polls文件夹
下一步我们的目标是在127.0.0.1:8000/polls/访问到我们的指定页面
配置路由
polls文件夹里新建urls.py作子路由
打开路径主文件夹(Demo1219_2)-> urls.py,按如下形式进行修改
1 | from django.contrib import admin |
配置子路由polls -> urls.py ,形式如下
1 | from django.urls import path |
配置子路由polls -> views.py ,形式如下
1 | from django.shortcuts import render |
访问时会按照 Demo1219_2-> urls.py ==》 polls -> urls.py ==》 polls -> views.py ==》最后打开 login.html 页面
在文件夹polls目录下新建软件包 templates
打开 Demo1219_2-> settings.py 找到 TEMPLATES 模块(54行左右),修改第二行的路径为:
1 | 'DIRS': [os.path.join(BASE_DIR,'templates')], |
问题在于Django 3.1就没有引入os模块了,拼接路径需要用pathlib模块(感谢弹幕老哥提醒)
我在这里先通过设置安装了pathlib解释器,然后操作如下
1 | from pathlib import Path |
看看是否可行,不可行回来找其他方案
参考文献:https://blog.csdn.net/liaoqingjian/article/details/143662285
templates 目录下新建 login.html,将我的页面贴过来。
打开 Demo1219_2-> settings.py , 找到 INSTALLED_APPS 模块加以修改(33行左右)
1 | INSTALLED_APPS = [ |
连接服务器,打开网站 127.0.0.1:8000/polls/ ,看到你的html网页即是连接成功
由于 PyCharm Community Edition 不支持 css 文件,一怒之下改用最爱的 VSCode!!!
但是此时无法载入同级目录的 css 文件
如图所示,在 polls 目录下创建 static 文件夹并生成上述四个文件,在 css 文件夹里放入 login_styles.css ,并进行配置。
在 settings.py 中的 TEMPLATES/OPTIONS 添加
1 | 'builtins':['django.templatetags.static'], |
形式如下:
1 | TEMPLATES = [ |
若没有报错,重新连接服务器,打开网站 127.0.0.1:8000/polls/ ,即可得到具有 css 格式的页面。
__参考文献__:https://blog.csdn.net/Hjh1906008151/article/details/125477399
使用 get 和 post 做登录功能
GET
找到登陆界面的 form 标签处,添加内容:
1 | <form action="/polls/index" method="get"> |
打开 polls -> views.py 中加入:
1 | def Login_view(request): |
这里的 GET 对应 html 里 input 标签里的 name=””
1 | <form id="register-form" action="/polls/index" method="get"> |
打开路由 polls -> urls.py 里的 urlpatterns 模块里加入
1 | path('index/',views.Login_view) |
连接服务器报错,编译器不认识 HttpResponse
在 polls -> views.py 上面添加
1 | from django.shortcuts import HttpResponse |
参考文献:https://blog.csdn.net/weixin_42263536/article/details/128706642
修改 polls -> views.py 12行左右为
1 | if u=="1789548110@qq.com" and p=="123456": |
可以实现指定用户登录。
POST
修改 polls -> views.py 中的 GET 改为 POST
1 | u = request.POST.get("register-email",'') |
并在 login.html 里 form 标签之下添加
1 | {% csrf_token %} |
单纯改为 POST 传值不可行,添加这段代码的目的是在下图位置进行操作,有利于保证安全性
登陆操作连接数据库
polls -》model.py 添加数据模型
1
2
3
4class UserInfo(models.Model):
user_id = models.CharField(primary_key=True,max_length=20)
user_email = models.CharField(max_length=100)
user_pwd = models.CharField(max_length=20)将数据模型迁移到数据库
1
2
3
4
5python manage.py makemigrations polls # polls为应用名
# 创建迁移文件
# 生成 polls -》0001_initial.py 成功后,执行生成数据库文件
python manage.py migrate
# 看到OK提示即为生成成功 查看数据库 dbdata1219 表目录中生成 polls_userinfo 表即为成功
确保数据库里存在数据
在polls_userinfo表内填入任意用户信息
编写判断逻辑
polls -》views.py
1 | from django.shortcuts import render |
刷新保存表格连接数据库就可以根据第三步填写的用户信息实现登录
新页面上传
以 index.html 主页上传为例
将 index.html 文件复制到 polls -> templates 目录下
修改 head 标签中的相应部分为
1 | <link rel="stylesheet" href="{% static 'css/styles.css' %}"> |
将 index.html 链接的 styles.css 文件复制到 polls -> static -> css 目录之下
view.py 添加页面显示函数
1 | def mainPage_view(request): |
urls.py 配置(修改)路由
1 | path('index/',views.mainPage_view), |
实现注册功能
添加注册页面
views.py 添加:
1 | # 渲染注册界面 |
配置路由:urls.py
1 | path('toregister/',views.toRegister_view), |
未完待续……
注:本篇为B站视频 https://www.bilibili.com/video/BV1wT4y1j71A/ 的操作笔记以及个人配置过程中的遇到的问题集锦,如有侵权请联系qq3488643420删除
- 标题: 基于PyCharm+Django+MySql搭建简易Web网站
- 作者: Cealivanus Kwan
- 创建于 : 2024-12-19 21:14:55
- 更新于 : 2025-01-06 12:05:33
- 链接: https://redefine.ohevan.com/2024/12/19/基于PyCharm-Django-MySql搭建简易Web网站/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。