Python Django从安装到云平台攻略(一)环境安装和框架搭建

写在最前

自己从一个python小白,自学django,实现了前后端搭建,打通了mysql数据库,建立了基于restful API的数据接口,最终成功部署在腾讯云和阿里云平台,实现技术落地。首先感谢csdn上各位前辈的经验指导,让我在迷茫中找到方向,也将自己的填坑记录做成攻略,po在这里,供大家参考。

创建django项目

PyCharm开源社区版不像商业版那样可以直接通过Django来创建项目,必须通过以下几个步骤进行:

  1. 创建项目:cmd命令先进入目录:cd E:\pj-python\pj01,再在cmd命令行下输入:django-admin startproject pj001 (cmd命令先进入目录:cd E:\pj-python\pj01)
    在这里插入图片描述
  2. 导入项目:打开Pycharm,open,选择刚才创建的项目
    在这里插入图片描述
  3. 创建应用:先在cmd命令行下进入demo所在目录:cd E:\pj-python\pj01\pj001,然后在cmd命令行下输入:python manage.py startapp app001 (cmd命令下先进入pj001所在的目录)
    或者在pycharm的terminal界面也跟cmd一样。
  4. 查看目录:
    在这里插入图片描述
    (3)各文件介绍
    “项目名/项目名/”下有:
    init.py -->记得加入处理mysql连接的语句
    index.py(我自己建的)
    settings.py :在installed_apps部分要加入自己创建的应用名,database部分设置好与mysql的连接,static部分加上staticfiles_dirs
    urls.py :在urlpatterns部分设置好要访问的url和views中函数的对应关系
    wsgi.py:一般不要动
    新建一个应用,下面会有:
    migrations文件夹:暂时不要动;‘
    init.py:暂时不要动
    admin.py:
    apps.py:
    forms.py: 我自己加的
    models.py: 如果需要创建数据表就要在这里面写,然后用python manage.py makemigrations和python manage.py migrate在mysql数据库中生成真实的表。
    tests.py:
    views.py: 可获取models中定义的表的数据,import models,…

2、安装mysql server
网上攻略很多,不载累述

3、创建数据库和用户
进入mysql数据库目录:C:\Program Files (x86)\MySQL\MySQL Server 5.7\bin>
输入mysql -h localhost -u root -p进入数据库
密码:123456
mysql>create database 数据库名;
mysql>create user 用户名@localhost identified by ‘123456’;
mysql>grant all privileges on 数据库.* to 用户名@localhost;
Ctrl+z退出

4、设置数据库连接
如遇到如下问题
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
解决方案:
(1) 安装pymsql
pip install pymysql
(2) 安装完毕,打开项目的_init_.py,添加代码:
import pymysql
pymysql.install_as_MySQLdb()

5、创建数据表(数据迁移)
(1)选择某个应用
(2)在其models.py中定义表结构,
(3)在其admin.py中注册表
(4)数据迁移:python manage.py makemigrations 应用名
python manage.py migrate
如出现RuntimeError: cryptography is required for sha256_password or …
执行如下操作:
1). ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #修改加密规则
2).ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; #更新一下用户的密码
3).FLUSH PRIVILEGES; #刷新权限
4).再重置下密码:alter user ‘root’@‘localhost’ identified by ‘123456’;

6、安装captcha
pip install django-simple-captcha
settings.py配置,加入captcha
INSTALLED_APPS = [
‘captcha’,
]
urls.py配置
加入url
from django.urls import path,include
path(‘captcha’, include(‘captcha.urls’)),
————————————————
错误一:No module named ‘MySQLdb’
原因:python3连接MySQL不能再使用mysqldb,取而代之的是pymysql。
解决方法:在python的MySQL包中,即路径:C:\Users\adong\AppData\Local\Programs\Python\Python36\Lib\site-packages\Django-2.0.3-py3.6.egg\django\db\backends\mysql
下的__init__.py文件中加入:
import pymysql
pymysql.install_as_MySQLdb()

错误二:django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None
原因:在解决了错误一以后出现了此错误。
解决方法:在python的MySQL包中,即路径:C:\Users\adong\AppData\Local\Programs\Python\Python36\Lib\site-packages\Django-2.0.3-py3.6.egg\django\db\backends\mysql
下的 base.py 文件中,注释掉一下两行代码:
if version < (1, 3, 3):
raise ImproperlyConfigured(“mysqlclient 1.3.3 or newer is required; you have %s” % Database.version)

settings.py文件中修改数据库配置为下面的内容:

#Database
#https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘HOST’: ‘127.0.0.1’,
‘PORT’: ‘3306’,
‘NAME’: ‘mysql’,
‘USER’: ‘root’,
‘PASSWORD’: ‘zwg123456’,
‘OPTIONS’: {
‘init_command’: “SET sql_mode=‘STRICT_TRANS_TABLES’”,
},
}
}
驱动(ENGINE)、主机地址(HOST)、端口号(PORT)、数据库(NAME)、用户名(NAME)以及登录密码(PASSWORD);
二、在__init_.py文件添加如下配置:

#coding=utf-8

import pymysql
pymysql.install_as_MySQLdb()
因为Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql。

三、执行数据迁移

在项目manage.py路劲下执行如下命令即可

python manage.py makemigrations
python manage.py migrate
————————————————
在利用models.py文件生成数据库表之前,我们需要手动的先创建数据库:
mysql> create database django_mysql;
创建完django_msql库之后,我们在终端执行如下命令,他的作用是将models文件生成一个迁移文件
python3 manage.py makemigrations
迁移文件生成完毕,执行

python manage.py migrate
django.db.utils.InternalError: (1060, “Duplicate column name ‘user_id’”)
一直出现这个问题,删除了migration文件里面的除了__int__.py以外的所有文件,继续执行,python manage.py migration,解决。
如果还不行,就用以下指令:
python manage.py migrate --fake
这个解决问题
————————————————
如果修改了models中的数据字段,,再次迁移:
python3 manage.py makemigrations --empty managerbook # managerbook就是你的app名字,此处要写成自己的app名字
python3 manage.py makemigrations # 再次正常运行生成迁移文件的命令
python3 manage.py migrate # 同步数据库
You are trying to add a non-nullable field ‘name’ to contact without a default; we can’t do that (the database needs something to populate existing rows).
Please select a fix:

  1. Provide a one-off default now (will be set on all existing rows with a null value for this column)
  2. Quit, and let me add a default in models.py
    Select an option:

解决方法:
先给’name’任意初始值:name = models.CharField(max_length=50, default=‘abc’)
然后执行:python manage.py makemirations
再执行:python manage.py migrate

再将default删去,即执行:name = models.CharField(max_length=50)
执行:python manage.py makemirations
再执行:python manage.py migrate
解决!
注意:在开发过程中,数据库同步误操作之后,难免会遇到后面不能同步成功的情况,解决这个问题的一个简单粗暴方法是把migrations目录下的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。
7、从mysql数据库中查询数据展示在网页
实现逻辑:
用户访问html页面,urls.py负责找到相应的views中的函数,views中的函数负责提供数据用于展示在页面。
(1)在views.py中
import models
8、前后台交互
views中的函数,get:第一次转到该页面;post:提交该页面。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于Python的链家房屋成交数据分析与房价预测平台搭建可以按照以下步骤进行: 1. 数据收集和清洗: - 使用Python的爬虫库(如BeautifulSoup、Scrapy)爬取链家网站上的房屋成交数据,并保存为CSV或Excel文件。 - 对收集到的数据进行清洗,去除重复值、缺失值和异常值。 2. 数据存储和管理: - 使用Python的数据库库(如MySQLdb、psycopg2)连接数据库,并创建相应的表格。 - 将清洗后的数据导入数据库中,以便后续的数据分析和预测。 3. 数据分析和可视化: - 使用Python的数据分析库(如pandas、numpy)对数据进行统计分析和特征工程。 - 使用Python的可视化库(如matplotlib、seaborn)绘制各种图表,如柱状图、折线图、散点图等,以便更好地理解数据。 4. 房价预测模型的建立: - 使用Python的机器学习库(如scikit-learn)选择合适的预测算法,如线性回归、决策树、随机森林等。 - 将数据分为训练集和测试集,使用训练集训练模型,并使用测试集评估模型的性能。 - 根据评估结果对模型进行调优,以提高预测准确度。 5. 搭建平台: - 使用Python的Web框架(如Django搭建一个基于平台,用于展示数据分析和房价预测的结果。 - 在平台上设计用户界面,包括数据可视化图表和房价预测功能。 - 将数据分析和预测的代码集成到平台中,以便用户可以通过平台进行数据分析和房价预测。 6. 部署和维护: - 将搭建好的平台部署到服务器上,确保平台的稳定运行。 - 定期更新数据,并对模型进行重新训练和优化,以保证预测结果的准确性。 - 监控平台的性能和用户反馈,及时修复bug和改进功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tsatnt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值