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笔记(2)
Oct 24 Python
python文件比较示例分享
Jan 10 Python
深入解析Python编程中JSON模块的使用
Oct 15 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
Django如何实现防止XSS攻击
Oct 13 Python
Django展示可视化图表的多种方式
Apr 08 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 Python
关于的python五子棋的算法
May 02 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实现定时执行任务的方法
2014/10/05 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
PHP goto语句用法实例
2019/08/06 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
javascript innerText和innerHtml应用
2010/01/28 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
基于jquery的分页控件(C#)
2011/01/06 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
vue-router项目实战总结篇
2018/02/11 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
python和bash统计CPU利用率的方法
2015/07/10 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
python构建自定义回调函数详解
2017/06/20 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
简单的Python人脸识别系统
2020/07/14 Python
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
2015年房地产销售工作总结
2015/04/20 职场文书
演讲开场白和结束语
2015/05/29 职场文书
2015年除四害工作总结
2015/07/23 职场文书
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电