导航:首页 > 程序命令 > django创建项目命令

django创建项目命令

发布时间:2023-05-30 18:47:38

㈠ 如何在社区版pycharm中安装django

django是python的一个开源web框架,在pycharm开发环境中,pycharm专业版在新建一个项目的时候有django选项,帮助创建一个django框架的项目。pycharm社区版需要自己创建
第一步:安装django框架
可以用pycharm安装,打开file \ setings \ project \ project interpreter 查看项目已安装的包,单击绿色加号添加目标框架,

注意记录django的安装路径,我的安装路径是: c:\users\用户名\appdata\roaming\python\python36\site-packages\

第二步:为了能让Windows找到django-admin的路径,需要设置环境变量,
path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到哪些目录下去寻找,
打开我的电脑 \ 属性\ 高级系统设置 \ 环境变量 \ 找到path变量,把刚才记录的django的安装路径添加到path变量中。其中path变量中有的已经存有Python的目录,当path需要多个值的时候,两个路径之间用分号 “;”隔开

第三步:打开Windows命令行,用django-admin.py 创建项目,注意创建项目的路径 c:\users\fyc
打开目录位置,找到创建的项目,看到里面有一些文件

第四步:用pycharm打开上一步所创建的项目,由于pycharm默认的项目目录是 pycharmprojects,所以把刚才创建的项目拷贝到默认目录(也可以不拷贝,只是为了方便管理)

拷贝完项目之后打开pycharm ,文件,新建工程,选择文件位置,把文件目录选在在pycharmproject 下,刚才创建的目录下

打开项目,会出现提示

我们是想从一个已存在的资源创建项目,所以选是,完成创建

㈡ pycharm怎么配置django环境

1创建一大缓个django项目
2运行这个django环境,这时PyCharm会报错,提逗春示缺少子命令
3配置PyCharm:添滚指模加 runserver 到配置中。 即可。

4再运行PyCharm上的django项目:则说明配置成功。

㈢ 如何解决Django 1.8在migrate时失败

1. 创建项目 运行下面命令就可以创庆培改建一个 django 项目,项目誉判名称叫 mysite : $ django-admin.py startproject mysite 创中颂建后的项目目录如下: mysite ├── manage.py └── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 dir...

㈣ pycharm中新建django怎么新加application

打开PyCharm官网http://www.jetbrains.com/pycharm/,选择搜碧Download,进入下载页面。

这时会出现2个版本,左边的那个是购买版,可以试用30天;右边那个是社区版,免费的,我们一般选择右边社区版。

下载完后进行安装,一直选择下一步就可以了,我就不详细介绍了。安装完后运行PyCharm,新建项目。此时建的项目并不是Django项目,这个还需要我们自己设置。

安装Django,使用命令安装,我这里是用的cmder,非常好用的控制台命令窗口,替链知代了cmd。进入到Python27的目录下,使用命令 pip install Django== 1.8.3 ,执行完就OK了。

新建Django项目,我这里是使用命令创建项目的。
django-admin startproject HelloDjango 创建HelloDjango项目
然后进入到HelloDjango项目根目录下,运行命令创建hello模块
python manage.py startapp hello
此时PyCharm中就有一个HelloDjango项目了。

现在我们来搭建一个简单的web服务。
修改views.py文件
修改urls.py文件
两个文件修改完后,就可以启动项目了,执行命令
python manage.py migrate
python manage.py runserver

此时项目已经启动起来世唤举了,它会告诉我们访问地址,按照地址进行访问就OK了。

㈤ 如何在django上自动创建createuperuser

1. 创建项目
运缺州行面命令创建 django 项目项目名称叫 mysite :

$ django-admin.py startproject mysite
创建项目目录:

mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py

1 directory, 5 files
说明:

__init__.py :让 Python 该目录发包 (即组模块)所需文件 空文件般需要修改
manage.py :种命令行工具允许种式与局扮唯该 Django 项目进行交互 键入python manage.py help看能做 应需要编辑文件;目录纯便
settings.py :该 Django 项目设置或配置
urls.py:Django项目URL路由设置目前空
wsgi.py:WSGI web 应用服务器配置文件更细节查看 How to deploy with WSGI
接修改 settings.py 文件例:修改 LANGUAGE_CODE、设置区 TIME_ZONE

SITE_ID = 1

LANGUAGE_CODE = 'zh_CN'

TIME_ZONE = 'Asia/Shanghai'

USE_TZ = True
面启 [Time zone]() 特性需要安装 pytz:

$ sudo pip install pytz
2. 运行项目
运行项目前我需要创建数据库表结构我使用默认数据库:

$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying sessions.0001_initial... OK
启服务:

$ python manage.py runserver
看面输:

Performing system checks...

System check identified no issues (0 silenced).
January 28, 2015 - 02:08:33
Django version 1.7.1, using settings 'mysite.settings'
Starting development server at
Quit the server with CONTROL-C.
端口8000启本服务器, 并且能台电脑连接访问 既服务器已经运行起现用网页浏览器访问 应该看令赏悦目淡蓝色 Django 欢迎页面始工作

指定启端口:

$ python manage.py runserver 8080
及指定 ip:

$ python manage.py runserver 0.0.0.0:8000
3. 创建 app
前面创建项目并且功运行现创建 app app 相于项目模块

项目目录创建桐培 app:

$ python manage.py startapp polls
操作功 mysite 文件夹看已经叫 polls 文件夹目录结构:

polls
├── __init__.py
├── admin.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py

1 directory, 6 files
4. 创建模型
每 Django Model 都继承自 django.db.models.Model
Model 每属性 attribute 都代表 database field
通 Django Model API 执行数据库增删改查, 需要写些数据库查询语句
打 polls 文件夹 models.py 文件创建两模型:

import datetime
from django.db import models
from django.utils import timezone

class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')

def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

class Choice(models.Model):
question = models.ForeignKey(Question)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
mysite/settings.py 修改 INSTALLED_APPS 添加 polls:

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
)
添加新 app 我需要运行面命令告诉 Django 模型做改变需要迁移数据库:

$ python manage.py makemigrations polls
看面输志:

Migrations for 'polls':
0001_initial.py:
- Create model Choice
- Create model Question
- Add field question to choice
polls/migrations/0001_initial.py 查看迁移语句

运行面语句查看迁移 sql 语句:

$ python manage.py sqlmigrate polls 0001
输结:

BEGIN;
CREATE TABLE "polls_choice" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL);
CREATE TABLE "polls_question" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "question_text" varchar(200) NOT NULL, "pub_date" datetime NOT NULL);
CREATE TABLE "polls_choice__new" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL, "question_id" integer NOT NULL REFERENCES "polls_question" ("id"));
INSERT INTO "polls_choice__new" ("choice_text", "votes", "id") SELECT "choice_text", "votes", "id" FROM "polls_choice";
DROP TABLE "polls_choice";
ALTER TABLE "polls_choice__new" RENAME TO "polls_choice";
CREATE INDEX polls_choice_7aa0f6ee ON "polls_choice" ("question_id");

COMMIT;
运行面命令检查数据库否问题:

$ python manage.py check
再运行面命令创建新添加模型:

$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, contenttypes, polls, auth, sessions
Running migrations:
Applying polls.0001_initial... OK
总结修改模型需要做几步骤:

修改 models.py 文件
运行 python manage.py makemigrations 创建迁移语句
运行 python manage.py migrate模型改变迁移数据库
阅读 django-admin.py documentation查看更 manage.py 用

创建模型我通 Django 提供 API 做测试运行面命令进入 python shell 交互模式:

$ python manage.py shell
面些测试:

>>> from polls.models import Question, Choice # Import the model classes we just wrote.

# No questions are in the system yet.
>>> Question.objects.all()
[]

# Create a new Question.
# Support for time zones is enabled in the default settings file, so
# Django expects a datetime with tzinfo for pub_date. Use timezone.now()
# instead of datetime.datetime.now() and it will do the right thing.
>>> from django.utils import timezone
>>> q = Question(question_text="What's new?", pub_date=timezone.now())

# Save the object into the database. You have to call save() explicitly.
>>> q.save()

# Now it has an ID. Note that this might say "1L" instead of "1", depending
# on which database you're using. That's no biggie; it just means your
# database backend prefers to return integers as Python long integer
# objects.
>>> q.id
1

# Access model field values via Python attributes.
>>> q.question_text
"What's new?"
>>> q.pub_date
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=)

# Change values by changing the attributes, then calling save().
>>> q.question_text = "What's up?"
>>> q.save()

# objects.all() displays all the questions in the database.
>>> Question.objects.all()
[]
打印所 Question 输结 []我修改模型类使其输更易懂描述修改模型类:

from django.db import models

class Question(models.Model):
# ...
def __str__(self): # __unicode__ on Python 2
return self.question_text

class Choice(models.Model):
# ...
def __str__(self): # __unicode__ on Python 2
return self.choice_text
接继续测试:

>>> from polls.models import Question, Choice

# Make sure our __str__() addition worked.
>>> Question.objects.all()
[]

# Django provides a rich database lookup API that's entirely driven by
# keyword arguments.
>>> Question.objects.filter(id=1)
[]
>>> Question.objects.filter(question_text__startswith='What')
[]

# Get the question that was published this year.
>>> from django.utils import timezone
>>> current_year = timezone.now().year
>>> Question.objects.get(pub_date__year=current_year)

# Request an ID that doesn't exist, this will raise an exception.
>>> Question.objects.get(id=2)
Traceback (most recent call last):
...
DoesNotExist: Question matching query does not exist.

# Lookup by a primary key is the most common case, so Django provides a
# shortcut for primary-key exact lookups.
# The following is identical to Question.objects.get(id=1).
>>> Question.objects.get(pk=1)

# Make sure our custom method worked.
>>> q = Question.objects.get(pk=1)

# Give the Question a couple of Choices. The create call constructs a new
# Choice object, does the INSERT statement, adds the choice to the set
# of available choices and returns the new Choice object. Django creates
# a set to hold the "other side" of a ForeignKey relation
# (e.g. a question's choice) which can be accessed via the API.
>>> q = Question.objects.get(pk=1)

# Display any choices from the related object set -- none so far.
>>> q.choice_set.all()
[]

# Create three choices.
>>> q.choice_set.create(choice_text='Not much', votes=0)

>>> q.choice_set.create(choice_text='The sky', votes=0)

>>> c = q.choice_set.create(choice_text='Just hacking again', votes=0)

# Choice objects have API access to their related Question objects.
>>> c.question

# And vice versa: Question objects get access to Choice objects.
>>> q.choice_set.all()
[, , ]
>>> q.choice_set.count()
3

# The API automatically follows relationships as far as you need.
# Use double underscores to separate relationships.
# This works as many levels deep as you want; there's no limit.
# Find all Choices for any question whose pub_date is in this year
# (reusing the 'current_year' variable we created above).
>>> Choice.objects.filter(question__pub_date__year=current_year)
[, , ]

# Let's delete one of the choices. Use delete() for that.
>>> c = q.choice_set.filter(choice_text__startswith='Just hacking')
>>> c.delete()
>>>
面部测试涉及 django orm 相关知识详细说明参考 DjangoORM

5. 管理 admin
Django优秀特性, 内置Django admin台管理界面, 便管理者进行添加删除网站内容.

新建项目系统已经我设置台管理功能见 mysite/settings.py:

INSTALLED_APPS = (
'django.contrib.admin', #默认添加台管理功能
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mysite',
)
同已经添加进入台管理 url, mysite/urls.py 查看:

url(r'^admin/', include(admin.site.urls)), #使用设置url进入网站台
接我需要创建管理用户登录 admin 台管理界面:

$ python manage.py createsuperuser
Username (leave blank to use 'june'): admin
Email address:
Password:
Password (again):
Superuser created successfully.
总结
看项目目录结构:

mysite
├── db.sqlite3
├── manage.py
├── mysite
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
├── polls
│ ├── __init__.py
│ ├── admin.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ ├── models.py
│ ├── templates
│ │ └── polls
│ │ ├── detail.html
│ │ ├── index.html
│ │ └── results.html
│ ├── tests.py
│ ├── urls.py
│ ├── views.py
└── templates
└── admin
└── base_site.htm
通面介绍 django 安装、运行及何创建视 图模型清晰认识接深入习 django 自化测试、持久化、间件、 际 化等知识

㈥ django创建第一个项目时,输入django-admin.py startproject djangoweb后,会提示: 这个是什么原因啊

国内网上找了一圈 那答案水的 为我们的科技担忧呀 最困慎新解,仅供参考:
方法一(麻烦不推荐):检查pathon路径写了没。没写的创建工程时django-admin.py前要加python。看看有没有安装django下的bin路径写到系统path里,然后把django安侍纯装的bin/django-admin.py文件拷到你想创建的文件夹下。方法二:写django下的bin路径写到系统汪谈敬path里,命令改为“django-admin(没有py后缀!) startproject web-name“。

㈦ 如何在阿里云上部署django

前提条件

1. 为 Python 应用程序安装 virtualenv 和 virtualenv wrapper,目的在于为 Python 项目创建独立的环境。
● 安装 pip

sudo apt-get install python-pip
● 安装 virtualenv
sudo pip install virtualenv
● 创建目录以存储您的 virtualenv
mkdir ~/.virtualenvs
● 安装 virtualenwrapper
sudo pip install virtualenvwrapper
● 将 WORKON_HOME 设置为您的 virtualenv 目录
导出 WORKON_HOME=~/.virtualenvs
● 将 WORKON_HOME 设置为您的 virtualenv 目录
导出 WORKON_HOME=~/.virtualenvs
● 将virtualenvwrapper.sh添加到.bashrc
将此行添加到 ~/.bashrc 的末尾,以便加载 virtualenvwrapper 命令。/usr/local/bin/virtualenvwrapper.sh
退出,然后重新打开您的 shell,或者使用.bashrc or source ~/.bashrc命令重新加载 .bashrc,然后一切准备就绪。

2. 安装 git。

apt-get install git

3. 安装 Nginx 作为 Web 服务器,这样您便可在其之后运行您的应用程序。

Sudo apt-get install nginx

启动您的第一个 Linux 实例

接下来向您介绍使用阿里云管理控制台运行 ECS 实例的相关步骤。

1. 登录到您的帐户,然后导航到“产品与服务”部分下的“云服务器”。单击侧边栏菜单中的概览。这会显示运行中的实例列表。单击购买实例从任意地域购买实例,或者继续到下一步创建新实例。

2. 单击侧边栏菜单中的实例。在实例列表中选择所需地域,然后单击右上方栏中的创建实例。

● 将其保存到应用程序目录上的 uwsgi.ini。如需进一步了解如何编写 ini 文件,请参阅Python/WSGI 应用程序快速入门。运行此命令以启动您的应用程序。

uwsgi uwsgi.ini (您的 ini 文件)

12. 更改 nginx 配置文件以用于应用程序。

server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name localhost; location /static/ { include uwsgi_params; alias /root/todoApp/public/; } location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; } }

13. 重启 nginx,随后您的应用程序将启动并在端口 80 上的 nginx 之后运行。

㈧ Django源码阅读 (一) 项目的生成与启动

诚实的说,直到目前为止,我并不欣赏django。在我的认知它并不是多么精巧的设计。只是由功能堆积起来的"成熟方案"。但每一样东西的崛起都是时代的选择。无论你多么不喜欢,但它被需要。希望有一天,python能有更多更丰富的成熟方案,且不再被诟病性能和可维护性。(屁话结束)
取其精华去其糟粕,django的优点是方便,我们这次源码阅读的目的是探究其方便的本质。计划上本次源码阅读不会精细到每一处,而是大体以功能为单位进行解读。

django-admin startproject HelloWorld 即可生成django项目,命令行是exe格式的。

manage.py 把参数交给命令行解析。

execute_from_command_line() 通过命令行参数,创建一个管理类。然后运行他的 execute() 。

如果设置了reload,将会在启动前先 check_errors 。

check_errors() 是个闭包,所以上文结尾是 (django.setup)() 。

直接看最后一句 settings.INSTALLED_APPS 。从settings中抓取app
注意,这个settings还不是我们项目中的settings.py。而是一个对象,位于 djangoconf\__init__.py

这是个Settings类的懒加载封装类,直到 __getattr__ 取值时才开始初始化。然后从Settings类的实例中取值。且会讲该值赋值到自己的 __dict__ 上(下次会直接在自己身上找到,因为 __getattr__ 优先级较低)

为了方便debug,我们直接写个run.py。不用命令行的方式。
项目下建个run.py,模拟runserver命令

debug抓一下setting_mole

回到 setup() 中的最后一句 apps.populate(settings.INSTALLED_APPS)
开始看 apps.populate()

首先看这段

这些App最后都会封装成为AppConfig。且会装载到 self.app_configs 字典中

随后,分别调用每个appConfig的 import_models() 和 ready() 方法。
App的装载部分大体如此

为了方便debug我们改写下最后一句

res的类型是 Command <django.contrib.staticfiles.management.commands.runserver.Command object at 0x00000101ED5163A0>
重点是第二句,让我们跳到 run_from_argv() 方法,这里对参数进行了若干处理。

用pycharm点这里的handle会进入基类的方法,无法得到正确的走向。实际上子类Commond重写了这个方法。

这里分为两种情况,如果是reload重载时,会直接执行 inner_run() ,而项目启动需要先执行其他逻辑。

django 项目启动时,实际上会启动两次,如果我们在项目入口(manage.py)中设置个print,会发现它会打印两次。

第一次启动时, DJANGO_AUTORELOAD_ENV 为None,无法进入启动逻辑。会进入 restart_with_reloader() 。

在这里会将 DJANGO_AUTORELOAD_ENV 置为True,随后重启。

第二次时,可以进入启动逻辑了。

这里创建了一个django主线程,将 inner_run() 传入。
随后本线程通过 reloader.run(django_main_thread) ,创建一个轮询守护进程。

我们接下来看django的主线程 inner_run() 。

当我们看到wsgi时,django负责的启动逻辑,就此结束了。接下来的工作交由wsgi服务器了
这相当于我们之前在fastapi中说到的,将fastapi的app交由asgi服务器。(asgi也是django提出来的,两者本质同源)

那么这个wsgi是从哪来的?让我们来稍微回溯下

这个settings是一个对象,在之前的操作中已经从 settings.py 配置文件中获得了自身的属性。所以我们只需要去 settings.py 配置文件中寻找。

我们来寻找这个 get_wsgi_application() 。

它会再次调用 setup() ,重要的是,返回一个 WSGIHandler 类的实例。

这就是wsgiapp本身。

load_middleware() 为构建中间件堆栈,这也是wsgiapp获取setting信息的唯一途径。导入settings.py,生成中间件堆栈。
如果看过我之前那篇fastapi源码的,应该对中间件堆栈不陌生。
app入口→中间件堆栈→路由→路由节点→endpoint
所以,wsgiapp就此构建完毕,服务器传入请求至app入口,即可经过中间件到达路由进行分发。

阅读全文

与django创建项目命令相关的资料

热点内容
游戏问题反馈提到的服务器是什么 浏览:654
单片机嵌入式应用的在线开发方法 浏览:230
暴风影音压缩视频 浏览:565
程序员一般用什么轴 浏览:3
android垂直循环滚动 浏览:164
迅雷自动开启文件夹 浏览:801
服务器爆满怎么才能快速进去 浏览:65
linux查看cpu是几核的 浏览:165
android赛风 浏览:228
程序员面试经历 浏览:984
苹果怎么设置app只用数据 浏览:856
学以为己pdf 浏览:231
为什么安卓手机进步很大 浏览:342
mfc软件加密 浏览:328
ubuntu上传文件命令 浏览:713
合约马丁格尔源码 浏览:972
慕课文件夹名称 浏览:671
用app国潮手帐怎么做 浏览:255
解压娱乐编辑器 浏览:615
wppdf 浏览:265