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实现方法
Nov 27 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
python控制nao机器人身体动作实例详解
Apr 29 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
python获取txt文件词向量过程详解
Jul 05 Python
解决django FileFIELD的编码问题
Mar 30 Python
python nohup 实现远程运行不宕机操作
Apr 16 Python
Linux安装Python3如何和系统自带的Python2并存
Jul 23 Python
Python使用openpyxl复制整张sheet
Mar 24 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 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实现数据分页显示的简单实例
2016/05/26 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
Python写的英文字符大小写转换代码示例
2015/03/06 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
Django自带的用户验证系统实现
2020/12/18 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
关于爱情的广播稿
2014/01/16 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
特此通知格式
2015/04/27 职场文书
圆明园观后感
2015/06/03 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书