python+Django+pycharm+mysql 搭建首个web项目详解
作者:领尚 发布时间:2024-01-18 22:18:07
本文实例讲述了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 弹出对话框
在对话框中左侧选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三个子目录
然后修改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.看到成果了
网页根据你输入的开始和条数展示数据库查询记录
注意本项目的windowsserver2012上并没有安装mysql数据库,查询连接的是另外一台电脑上的linux系统中的mysql.
希望本文所述对大家基于Django框架的Python程序设计有所帮助。
来源:https://blog.csdn.net/oLinBSoft/article/details/79038612


猜你喜欢
- 即使MyISAM表格式非常可靠(SQL语句对表做的所有改变在语句返回之前被写下),如果下列任何事件发生,你依然可以获得损坏的表:&m
- 对于Python开发用户来讲,安装第三方库是家常便饭,下面提供两种安装方式pycharm软件安装1.打开file>setting2.点
- 如下所示:#!/usr/bin/python3# -*- coding:UTF-8-*-# Author: zhuhongqiangfrom
- 检查图片是否损坏日常工作中,时常会需要用到图片,有时候图片在下载、解压过程中会损坏,而如果一张一张点击来检查就太不Cool了,因此我想大家都
- 在IE6中背景属性加 a 与 a:hover 两者的伪类结合,在正常逻辑下为何不起作用?测试这问题存在IE6及以下浏览器,这问题我经常遇到在
- 1.什么是Pillow首先我们需要了解一下PIL(Python Imaging Library),它是Python2中非常强大的图像处理标准
- MMClassification是一个基于PyTorch的开源图像分类工具箱,是OpenMMLab项目的一部分,源码传送门,最新发布版本为v
- 今天我们将介绍处理大量数据时非常方便的工具。我不会只告诉您可能在手册中找到的一般信息,而是分享一些我发现的小技巧,例如tqdm与 multi
- 0x00 识别涉及技术验证码识别涉及很多方面的内容。入手难度大,但是入手后,可拓展性又非常广泛,可玩性极强,成就感也很足。验证码图像处理验证
- 在oracle中有很多关于日期的函数,如:1、add_months()用于从一个日期值增加或减少一些月份 date_value:=add_m
- 一、开发时管理数据库遇到的问题:现在开发一般都是团队开发,这样就会出现项目同步的问题,代码同步可以通过SVN工具管理起来,那数据库同步怎么办
- 本文实例讲述了Windows平台Python连接sqlite3数据库的方法。分享给大家供大家参考,具体如下:之前没有接触过sqlite数据库
- 一、问题描述在启动MYSQL时出现问题:“ERROR 2003 (HY000): Can't connect to MySQL se
- 外面很多所谓sitemap生成代码都只生成目录文件地址,没生成动态的,我后来自己写了这个,是支持动态的,例子: 如你是文章网站,文章有200
- 引言最近在做个表情包的小程序,涉及到表情包搜索功能。我们上传表情包的时候,只有一张图,怎么搜索?这个时候我们想到就是将表情包的文字提取出来,
- MySQL 可调节设置可以应用于整个 mysqld进程,也可以应用于单个客户机会话。服务器端的设置每个表都可以表示为磁盘上的一个文件,必须先
- 每个进行过较大型的ASP-Web应用程序设计的开发人员大概都有如下的经历:ASP代码与页面HTML混淆难分,业务逻辑与显示方式绞合,使得代码
- ASP通过XMLDom在服务器端操作XML文件的主要方法和实现对于小数据量,xml文件在检索更新上于ACCESS有很多优势。我曾经测试过不用
- 概述SQL Server的主要性能取决于磁盘I/O效率,SQL Server 。2008提供了数据压缩功能来提高磁盘I/O效率。表压缩意味着
- 本文实例讲述了python统计cpu利用率的方法。分享给大家供大家参考。具体实现方法如下:#-*-coding=utf-8-*-import