使用pycharm django模板创建django
创建虚拟环境
mkvirtualenv --python=/usr/bin/python3 py3-env
mkvirtualenv wx
在自己设置的虚拟目录里 找python3.8
迁移数据库
makemigrations
migrate
创建超级用户
createsuperuser
可参考 pycharm + django
使用pymysql组件 链接mysql
pip3 install pymysql
在项目的setting.py同级的 init.py 文件中添加以下代码即可。
import pymysql
pymysql.install_as_MySQLdb()
安装django-rest-framework
安装 using pip,包括您想要的任何可选包…
pip install djangorestframework
pip install markdown # Markdown support for the browsable API.
pip install django-filter # Filtering support
添加’rest_framework’到您的INSTALLED_APPS设置中。
INSTALLED_APPS = [
...
'rest_framework',
]
如果您打算使用可浏览 API,您可能还想添加 REST 框架的登录和注销视图。将以下内容添加到您的根urls.py文件中。
urlpatterns = [
...
path('api-auth/', include('rest_framework.urls'))
]
REST 框架 API 的任何全局设置都保存在一个名为REST_FRAMEWORK. 首先将以下内容添加到您的settings.py模块中:
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
]
}
创建二级目录 apps
import os
import sys
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
# 把 自己添加的目录 在import的时候, 不会报错 BASE_DIR 是项目根目录, 特别是windows 的 cmd
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, BASE_DIR)
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
以上的创建 apps 下的子应用 不能被直接找到
urls
from django.contrib import admin
from django.urls import path, include
from rest_framework import routers, serializers, viewsets
router = routers.DefaultRouter()
# 注:path是新写法,url为老写法,若要使用正则,则使用re_path
urlpatterns = [
path('', include(router.urls)),
path('admin/', admin.site.urls),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
# 添加子路由
# path('near/', include('nearbybroker.urls'),),
# path('', include('wechat.urls')), # 微信 路由分支
#将主路由和子路由绑定
path('book/', include('apps.nearbybroker.urls')), #就已经匹配到了book这个位置
]
子urls
from django.urls import path, include
from rest_framework import routers
from . import views
# Routers provide an easy way of automatically determining the URL conf.
router = routers.DefaultRouter()
# router.register(r'product', views.WxproductViewSet)
# 注:path是新写法,url为老写法,若要使用正则,则使用re_path
urlpatterns = [
path('', include(router.urls)),
path('a/', views.SnippetList.as_view())
]
# urlpatterns += router.urls
上传依赖
# 生成依赖文件
pip freeze > requirements.txt
# 安装依赖
pip install -r requirements.txt