Django2+MySQL5.7 创建第一个简单的app项目

创建项目

以下是命令行创建python项目的指南,如果是使用pycharm创建的django工程则从创建工程开始,命令行即Terminal的虚拟环境,命令不需要做任何改变

创建第一个项目

安装django

pip install django==2.2.3

命令行进入指定的文件目录,创建工程(xxxx为项目名称)

django-admin startproject xxxx

命令行进入工程目录(xxxx为项目名称)

cd xxxx

创建app(yyyy为项目名称)

python manage.py startapp yyyy

此时整个目录结构如下

tree

xxxx/
  yyyy/
    migrations/
      _init_.py
    _init_.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
  xxxx/
    _init_.py
    settings.py
    urls.py
    wsgi.py
  manage.py

配置 urls.py (路由)

修改工程目录xxxx/xxxx下的 urls.py

from django.urls import path,include
urlpatterns = [
	path('', include("yyyy.urls")),
]

这里是将路由映射迁移到app的 urls.py 文件,django默认是不会创建这个文件,所以我们需要在yyyy目录下创建文件 urls.py

修改工程目录xxxx/yyyy下的 urls.py

from django.contrib import admin
from django.urls import path
from . import views

app_name = 'yyyy' 

urlpatterns = [
	path('', views.index, name="index"),
	path('admin/', admin.site.urls),
]

这里将根目录的路由映射到试图views里面的index方法,我们需要去 views.py 进行添加

from django.http import HttpResponse
def index(request):
	return HttpResponse("Hello world! This is yyyy index.")

setting.py 的INSTALLED_APPS中添加app “yyyy”

INSTALLED_APPS = [
	'django.contrib.admin',
	'django.contrib.auth',
	'django.contrib.contenttypes',
	'django.contrib.sessions',
	'django.contrib.messages',
	'django.contrib.staticfiles',
	'yyyy',
]

到这里我们的项目创建就完成啦,在命令行中运行服务器,打开连接就可以看到我们index返回的HttpResponse的内容如下

python manage.py runserver

网址: http://127.0.0.1:8000/

结果:
index页面

连接MySQL

在命令行中进入mysql创建数据库‘mydb’

create database mydb;

修改 setting.py 默认数据库配置

DATABASES = {
	'default': {
		'ENGINE': 'django.db.backends.mysql',   # 数据库引擎
		'NAME': 'mydb',         # 你要存储数据的库名,事先要创建之
		'USER': 'root',         # 数据库用户名
		'PASSWORD': '123456',     # 自己的MySQL数据库密码
		'HOST': 'localhost',    # 主机
		'PORT': '3306',         # 数据库使用的端口
	}
}

Python3不支持MySQLdb,可用pymysql代替。

1.首先,在Python虚拟环境下安装pymysql

pip install pymysql

2.然后,在项目文件夹下的_init_.py添加如下代码即可。

import pymysql
pymysql.install_as_MySQLdb()

3.再者,在Terminal中执行数据库迁移命令:

python manage.py makemigrations
python manage.py migrate

搭建Django2+Python3+MySQL5时同步数据库时报错:mysqlclient 1.3.3 or newer is required; you have 0.7.11.None:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

解决办法:

找到Python安装路劲下的Python36-32\Lib\site-packages\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__)

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

python manage.py makemigrations
python manage.py migrate

Django调用pymysql时报错:AttributeError: ‘str’ object has no attribute ‘decode’:

File “F:\Project\PythonEnve***\lib\site-packages\django\db\backends\mysql\operations.py”, line 146, in last_executed_query
query = query.decode(errors=‘replace’)
AttributeError: ‘str’ object has no attribute ‘decode’

解决方法:

vi 上述文件,vim operations.py 注释掉 if 和 下面结果,直接返回query数据,结果就可以正常生成了。

def last_executed_query(self, cursor, sql, params):
	# With MySQLdb, cursor objects have an (undocumented) "_executed"
	# attribute where the exact query sent to the database is saved.
	# See MySQLdb/cursors.py in the source distribution.
	query = getattr(cursor, '_executed', None)
	
	#注释掉这下面两句,直接返回query
	# if query is not None:
		#query = query.decode(errors='replace')
		
	return query

把decode改成encode是错误的,简直乱用!

再重新迁移数据库运行应该就不会有问题了,models.py文件会生成django默认的数据库模型,也会同步到mydb数据库中。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以指导你如何建立一个Vue、DjangoMySQL项目。这个项目的主要目的是展示如何使用Vue作为前端框架,Django作为后端框架,MySQL作为数据库来构建一个全栈应用。 步骤如下: 1. 安装Vue CLI 首先,你需要安装Vue CLI。你可以使用以下命令进行安装: ``` npm install -g @vue/cli ``` 2. 创建Vue项目 在安装Vue CLI之后,你可以使用以下命令创建Vue项目: ``` vue create my-project ``` 在创建项目的过程中,你需要选择一些选项,例如项目名称、Vue版本、Babel、ESLint等等。你可以根据自己的需求进行选择。 3. 安装Django创建Vue项目之后,你需要安装Django。你可以使用以下命令进行安装: ``` pip install django ``` 4. 创建Django项目 在安装Django之后,你可以使用以下命令创建Django项目: ``` django-admin startproject mysite ``` 5. 创建Django应用 在创建Django项目之后,你可以使用以下命令创建Django应用: ``` python manage.py startapp myapp ``` 6. 配置数据库 在创建Django应用之后,你需要配置MySQL数据库。你可以在Django的settings.py文件中进行配置。例如: ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '3306', } } ``` 7. 安装Django REST framework 你可以使用以下命令安装Django REST framework: ``` pip install djangorestframework ``` 8. 编写Django视图 在安装Django REST framework之后,你可以编写Django视图。例如: ```python from rest_framework.decorators import api_view from rest_framework.response import Response @api_view(['GET']) def hello(request): return Response({'message': 'Hello, world!'}) ``` 9. 配置Django路由 在编写Django视图之后,你需要配置Django路由。例如: ```python from django.urls import path from .views import hello urlpatterns = [ path('hello/', hello, name='hello'), ] ``` 10. 编写Vue组件 在配置Django路由之后,你可以编写Vue组件。例如: ```vue <template> <div> <button @click="handleClick">Click me!</button> <p>{{ message }}</p> </div> </template> <script> export default { data() { return { message: '' } }, methods: { handleClick() { fetch('/api/hello/') .then(response => response.json()) .then(data => { this.message = data.message }) } } } </script> ``` 11. 运行项目 在编写Vue组件之后,你可以运行项目。首先,你需要启动Django服务器: ``` python manage.py runserver ``` 然后,你需要启动Vue开发服务器: ``` npm run serve ``` 现在,你可以在浏览器中访问http://localhost:8080/,然后点击"Click me!"按钮,你应该可以看到一个显示"Hello, world!"的消息。 以上就是如何建立一个Vue、DjangoMySQL项目的步骤。希望对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值