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程序设计入门(5)类的使用简介
Jun 16 Python
python数据类型_元组、字典常用操作方法(介绍)
May 30 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
python中使用print输出中文的方法
Jul 16 Python
使用python对excle和json互相转换的示例
Oct 23 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
WxPython建立批量录入框窗口
Feb 27 Python
Pytorch 实现自定义参数层的例子
Aug 17 Python
Python使用random模块生成随机数操作实例详解
Sep 17 Python
python连接PostgreSQL过程解析
Feb 09 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
五种Python转义表示法
Nov 27 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递归创建和删除文件夹的代码小结
2012/04/13 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
vue中axios的二次封装实例讲解
2019/10/14 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
python进行文件对比的方法
2018/12/24 Python
python如何统计代码运行的时长
2019/07/24 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
防沙治沙典型材料
2014/05/07 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书