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 弹出对话框

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程序设计有所帮助。

来源:https://blog.csdn.net/oLinBSoft/article/details/79038612

标签:python,Django,pycharm,web项目
0
投稿

猜你喜欢

  • sql 分组查询问题

    2024-01-21 05:50:00
  • Python通过RabbitMQ服务器实现交换机功能的实例教程

    2023-08-24 01:15:19
  • 将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程

    2022-12-16 07:50:17
  • python添加模块搜索路径和包的导入方法

    2023-11-24 03:09:49
  • PIL.Image.open和cv2.imread的比较与相互转换的方法

    2021-05-06 22:09:38
  • Python 异步之推导式示例详解

    2021-05-16 17:31:08
  • js模仿php中strtotime()与date()函数实现方法

    2024-04-18 10:01:55
  • Django中Middleware中的函数详解

    2023-08-30 06:58:30
  • JS不同加载方式下的window.onload

    2009-05-21 18:09:00
  • pandas实现数据合并的示例代码

    2021-03-14 01:10:59
  • 使用Numpy读取CSV文件,并进行行列删除的操作方法

    2023-05-05 03:26:11
  • win2003安装sqlserver 2000提示无法验证产品密钥的解决方法

    2024-01-27 00:18:39
  • php strftime函数的详细用法

    2023-06-07 19:09:37
  • scrapy数据存储在mysql数据库的两种方式(同步和异步)

    2023-07-10 03:29:43
  • pytorch实现onehot编码转为普通label标签

    2023-04-18 10:19:21
  • Linux yum 命令安装mysql8.0的教程详解

    2024-01-16 00:26:59
  • Java 正则表达式功能及应用

    2022-03-25 10:07:09
  • php生成shtml类用法实例

    2023-11-15 21:46:23
  • ASP实现文件直接下载的代码

    2011-04-11 10:56:00
  • vue修改滚动条样式的方法

    2024-04-27 15:48:59
  • asp之家 网络编程 m.aspxhome.com