python+Django+pycharm+mysql 搭建首个web项目详解


Posted in Python onNovember 29, 2019

本文实例讲述了python+Django+pycharm+mysql 搭建首个web项目。分享给大家供大家参考,具体如下:

前面的文章记录了环境搭建的过程,本节记录首个web项目调试

首先检查安装的模块,输入dos命令 pip list, 会显示已安装的模块,看是否有Django,PyMySQL模块

C:\Users\Administrator\PycharmProjects>pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to di
sable this warning.
Django (2.0.1)
pip (9.0.1)
PyMySQL (0.8.0)
pytz (2017.3)
setuptools (28.8.0)

1、然后开始创建项目: 运行PyCharm,  菜单选File->New project 弹出对话框

python+Django+pycharm+mysql 搭建首个web项目详解

在对话框中左侧选Django ,项目名称修改为mysite,点Create按钮创建

然后点击运行,即可看到web项目启动,并提示 Starting development server at http://127.0.0.1:8000/

点击链接即可在浏览器看到默认网页,创建成功

2. 创建APP

在每个django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。所有的APP共享项目资源。

在pycharm下方的terminal终端中输入命令:

python manage.py startapp cmdb

这样就创建了一个叫做cmdb的APP,django自动生成“cmdb”文件夹。

3.  修改mysite\urls.py文件,修改后以下:

from django.urls import path
from cmdb import views
from django.conf.urls import url
urlpatterns = [
#  path('admin/', admin.site.urls),
url(r'^index/',views.index)
]

4.修改cmdb\views.py文件

from django.shortcuts import render
from django.shortcuts import HttpResponse
import pymysql
# Create your views here.
# 打开数据库连接
db = pymysql.connect(host="192.168.1.100", user="root",
           password="abc123", db="testdb", port=3306)
# 使用cursor()方法获取操作游标
cur = db.cursor()
def index(request):
  start = 10
  limit = 10
  if request.method == "POST":
    start = request.POST.get("start", None)
    limit = request.POST.get("limit", None)
  sql = "SELECT * FROM `siterecord` WHERE 1 limit %s,%s" % (start, limit)
  try:
    cur.execute(sql) # 执行sql语句
    results = cur.fetchall() # 获取查询的所有记录
  except Exception as e:
    raise e
  return render(request, "index.html", {"results":results})

主要是连接数据库,根据网页界面输入的start,limit查询数据库记录,并把记录返回给页面输出

5.创建template\index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript" src="/static/js/test.js"></script>
</head>
用户输入
<hr>
<form action="/index/" method="post">
 开始: <input type="text" name="start"/><br>
 条数:<input type="text" name="limit"/><br>
<input type="submit" value="提交"><br>
</form>
<hr>
<h1>访问记录展示</h1>
<table border="1">
 <thead>
 <th>id</th>
 <th>softid</th>
 <th>visittime</th>
 <th>ip</th>
 </thead>
  <tbody>
  {% for row in results %}
     <tr>
    <td>{{ row.0 }}</td>
    <td>{{ row.1 }}</td>
    <td>{{ row.2 }}</td>
    <td>{{ row.3 }}</td>
  <tr>
{% endfor %}
  </tr>
   </tbody>
</table>
</body>
</html>

该网页提示输入参数,并把查询数据库结果用表格展示出来,此外,为了测试静态文档目录,引入了一个js文档

6.增加static目录,存放img、css、js等静态文档

与cmdb同级建立目录static,目录下建imgs,css,js三个子目录

python+Django+pycharm+mysql 搭建首个web项目详解

然后修改mysite\setting.py文件,增加以下内容

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS=(
os.path.join(BASE_DIR, 'static'),
)

这样index.html文档中就可以引用图片,css,js等静态文档了

7.重启django服务器,在浏览器栏输入

http://127.0.0.1:8000/index/

注意后面/index/不能缺少

如果出现跨域禁止,修改mysite\setting.py,注释掉以下这行

MIDDLEWARE = [
  'django.middleware.security.SecurityMiddleware',
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.middleware.common.CommonMiddleware',
 # 'django.middleware.csrf.CsrfViewMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.messages.middleware.MessageMiddleware',
  'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

'django.middleware.csrf.CsrfViewMiddleware',这行注释掉即可

8.看到成果了

python+Django+pycharm+mysql 搭建首个web项目详解

网页根据你输入的开始和条数展示数据库查询记录

注意本项目的windowsserver2012上并没有安装mysql数据库,查询连接的是另外一台电脑上的linux系统中的mysql.

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
Python中的descriptor描述器简明使用指南
Jun 02 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
PyCharm中代码字体大小调整方法
Jul 29 Python
wxpython+pymysql实现用户登陆功能
Nov 19 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
Python 实现微信自动回复的方法
Sep 11 Python
Python Django路径配置实现过程解析
Nov 05 Python
python中的yield from语法快速学习
Nov 06 Python
详解python的变量缓存机制
Jan 24 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
Nov 29 #Python
python jenkins 打包构建代码的示例代码
Nov 29 #Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 #Python
python中从for循环延申到推导式的具体使用
Nov 29 #Python
python 实现矩阵按对角线打印
Nov 29 #Python
python之列表推导式的用法
Nov 29 #Python
python 实现方阵的对角线遍历示例
Nov 29 #Python
You might like
php查看session内容的函数
2008/08/27 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
php实现Mysql简易操作类
2015/10/11 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
在python中安装basemap的教程
2018/09/20 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
Python适配器模式代码实现解析
2019/08/02 Python
Python简易版停车管理系统
2019/08/12 Python
Python3 实现爬取网站下所有URL方式
2020/01/16 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
C#基础面试题
2016/10/17 面试题
大学本科生的个人自我评价
2013/12/09 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
个人作风建设心得体会
2014/10/22 职场文书
2014年党总支工作总结
2014/12/18 职场文书
优秀党员推荐材料
2014/12/18 职场文书
2015年电教工作总结
2015/05/26 职场文书
公司考勤管理制度
2015/08/04 职场文书
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers