cd C:\Users\yasuo\Desktop\py
python -m venv ll_envll_env\Scripts\activatedeactivatell_env\scripts\python.exe -m pip install --upgrade pippip3 install Djangodjango_admin startproject learning_log .dir learning_logpython manage.py migratepython manage.py runserver
动手试一试
观察以上过程产生的文件和文件夹
db.sqlite3 SQLite使用单个文件的数据库
manage.py 类似与main();
settings.py指定Django如何与你的系统交互以及管理项目
urls.py告诉Django应该创建哪些网页来响应浏览器请求。
wsgi.py帮助Django提供他创建的文件。web server gateway interface缩写
创建超级用户
python manage.py createsuperuser
定义模型
模型告诉Django如何处理应用程序中储存的数据。在代码层,模型就是一个类型和每一个类一样,包含属性和方法。
model.py
```python
class Topic(models.Model):
'''用户学习的主题'''
text = models.CharField(max_length=200)//CharField储存少量的文本,且必须预留相应的空间,单位是字符。
date_added = models.DateTimeField(auto_now_add=True)//记录当前时间
def __str__(self):
'''返回模型的字符串表示'''
return self.text
激活模型
打开settings.py,将learning_logs加入到INSTALLED_APPS中。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 我的应用
'learning_logs'
]
模型修改三部曲
python manage.py makemigrations learning_logspython manage.py migrate
Django shell
启动 python manage.py shell
18章3.1小节.映射URL
由于Django更新
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),# 该模块定义了可在管理网站中请求的所有URL
path('', include('learning_logs.urls', namespace='learning_logs')),
# 代码包含实参namespace , 让我们能够将learning_logs 的URL同项目中的其他URL区分开来
]
'''
Django版本更新,书上的代码需做相应修改
书中源代码:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'', include('learning_logs.urls', namespace='learning_logs')),
]
应改为:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('learning_logs.urls', namespace='learning_logs')),
]
'''
learning_logs/urls.py
"""定义learning_logs的URL模式"""
from django.urls import path,re_path
from . import views
app_name='learning_logs' # 不能少 ,否则runserver的时候就会出错
# https://docs.djangoproject.com/en/2.2/ref/urls/#module-django.urls.conf
urlpatterns = [
# 主页
path('', views.index, name='index'),# Django将在文件views.py中查找函数index()
]
# urls -> views -> html 添加网页步骤
'''
Django版本更新,书上的代码需做相应修改
书中源代码:
from django.conf.urls import url
from . import views
urlpatterns = [
# Home page.
url(r'^$', views.index, name='index'),
# Show all topics.
url(r'^topics/$', views.topics, name='topics'),
# Detail page for a single topic.
url(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),
]
应改为:
from django.urls import path
from . import views
app_name='learning_logs'
urlpatterns = [
# 主页
path('', views.index, name='index'),
# 显示所有的主题
path('topics/', views.topics, name='topics'),
# 特定主题的详细页面
path("topics/(?P<topic_id>\d+)/", views.topic, name='topic'),
]
'''
19.2登录页面
from django.urls import path,include
from django.contrib.auth.views import LoginView
from django.contrib.auth import logout,login,authenticate
from . import views
app_name = 'users'
LoginView.template_name = 'users/login.html'
urlpatterns = [
#登录页面
path('login/',LoginView.as_view(),name='login'),
#注销
path('logout/',views.logout_view,name='logout'),
#注册
path('register/',views.register,name='register'),
]
在部署到heroku遇到的问题
import os
至此项目问题结束。