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自定义函数的创建、调用和函数的参数详解
Mar 11 Python
Python查找相似单词的方法
Mar 05 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
Python实现的文本编辑器功能示例
Jun 30 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
python中对_init_的理解及实例解析
Oct 11 Python
基于python生成英文版词云图代码实例
May 16 Python
Django migrate报错的解决方案
May 20 Python
Python max函数中key的用法及原理解析
Jun 26 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开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
javascript 动态添加事件代码
2008/11/30 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
Python随机数random模块使用指南
2016/09/09 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
超越自我演讲稿
2014/05/21 职场文书
幼儿园新生开学寄语
2015/05/27 职场文书
2022微信温控新功能上线
2022/05/09 数码科技
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python