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和shell变量互相传递的几种方法
Nov 20 Python
python输出指定月份日历的方法
Apr 23 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
Python错误: SyntaxError: Non-ASCII character解决办法
Jun 08 Python
python matplotlib画图实例代码分享
Dec 27 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
python3.7 的新特性详解
Jul 25 Python
pytorch中图像的数据格式实例
Feb 11 Python
Jupyter Notebook折叠输出的内容实例
Apr 22 Python
Python获取excel内容及相关操作代码实例
Aug 10 Python
jupyter使用自动补全和切换默认浏览器的方法
Nov 18 Python
python 多线程爬取壁纸网站的示例
Feb 20 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执行速度全攻略(下)
2006/10/09 PHP
一个程序下载的管理程序(二)
2006/10/09 PHP
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
PHP实现Socket服务器的代码
2008/04/03 PHP
php-msf源码详解
2017/12/25 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
潜说js对象和数组
2011/05/25 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
性能服装:HYLETE
2018/08/14 全球购物
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
妈妈的账单教学反思
2014/02/06 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
语文复习计划
2015/01/19 职场文书
卫生主题班会
2015/08/14 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书